我有NSFileWrapper
的内容。我想保存它(writeToURL...:
),为其添加新内容并再次保存。
我想避免一次又一次地写同样的文件。所以,如果我清楚地理解,这意味着选项NSFileWrapperWritingAtomic
不适合我。特别是当我在方法
- (BOOL)writeAdditionalContent:(id)content
toURL:(NSURL *)absoluteURL
originalContentsURL:(NSURL *)absoluteOriginalContentsURL
error:(NSError *__autoreleasing *)error
(OSX
类似物UIManagedDocument
)
和Apple says“不要在覆盖-[NSDocument writeToURL:ofType:error:]
”时使用此选项。
所以,我不使用这个选项,但更新文件包装器中的文件(我的意思是:再次保存)失败(见下文)。有什么想法/线索吗?
我第一次用
保存它[self.fileWrapper writeToURL:[absoluteURL URLByAppendingPathComponent:@"attached_files/"]
options:0
originalContentsURL:[absoluteOriginalContentsURL URLByAppendingPathComponent:@"attached_files/"]
error:error] ;
效果很好。
我的文件包装器是
/*
Initializing the file wrapper
*/
_fileWrapper = [[NSFileWrapper alloc] initDirectoryWithFileWrappers:nil] ;
[_fileWrapper setFilename:@"attached_files"] ;
[_fileWrapper setPreferredFilename:@"attached_files"] ;
我使用相同的命令第二次保存。我收到了错误
Error Domain=NSCocoaErrorDomain Code=516 "The file already exists".
给定的名称实际上是“attached_files”。
如果我使用选项NSFileWrapperWritingWithNameUpdating
,我仍然会收到相同的错误。
如果我使用选项NSFileWrapperWritingAtomic
,我不会收到错误。