-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathLSDocument.m
42 lines (35 loc) · 1.22 KB
/
LSDocument.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//
// Copyright (c) 2013 Luke Scott
// https://github.com/lukescott/LSFileWrapper
// Distributed under MIT license
//
#import "LSDocument.h"
#import "LSFileWrapper.h"
@interface LSFileWrapper ()
@property (nonatomic, strong) NSURL *url;
@end
@implementation LSDocument
- (BOOL)writeContents:(LSFileWrapper *)contents
andAttributes:(NSDictionary *)additionalFileAttributes
safelyToURL:(NSURL *)url
forSaveOperation:(UIDocumentSaveOperation)saveOperation
error:(NSError *__autoreleasing *)outError
{
return [contents writeUpdatesToURL:self.fileURL error:outError];
}
- (void)saveWithCompletionHandler:(void (^)(BOOL success))completionHandler
{
[self saveToURL:self.fileURL forSaveOperation:UIDocumentSaveForOverwriting completionHandler:completionHandler];
}
- (BOOL)readFromURL:(NSURL *)url error:(NSError *__autoreleasing *)outError
{
__block LSFileWrapper *wrapper = [[LSFileWrapper alloc] initWithURL:url isDirectory:NO];
__block BOOL result;
dispatch_sync(dispatch_get_main_queue(), ^(void) {
result = [self loadFromContents:wrapper
ofType:self.fileType
error:outError];
});
return result;
}
@end