我正在开发一个基于 NSDocument 的应用程序,其文档类型是包含一堆文件的包包。我这样保存它:
- (NSFileWrapper *)fileWrapperOfType:(NSString *)typeName error:(NSError **)outError
{
if (!self.documentFileWrapper) {
NSFileWrapper *documentFileWrapper = [[NSFileWrapper alloc] initDirectoryWithFileWrappers:nil];
[self setDocumentFileWrapper:documentFileWrapper];
}
NSFileWrapper *defaultWrapper = [self.documentFileWrapper.fileWrappers objectForKey:@"default"];
if (!defaultWrapper) {
defaultWrapper = [[NSFileWrapper alloc] initDirectoryWithFileWrappers:nil];
[defaultWrapper setPreferredFilename:@"someFile.ext"];
[self.documentFileWrapper addFileWrapper:defaultWrapper];
}
[defaultWrapper addRegularFileWithContents: ... some computed content for the file ... preferredFilename:@"someFile.ext"];
return self.documentFileWrapper;
}
换句话说,在包中,创建一个文件夹“default”,并将“someFile.ext”和一些内容一起保存到其中。
现在,问题。当我查看磁盘上实际保存的内容时,我看到:
每次我保存文件时,NSDocument 包装器似乎都会创建资源的一些版本化副本。我不想要版本化的克隆,我只想要具有最新内容的原版文件。
版本化资源从何而来?这里发生了什么?有我应该阅读的文档吗?