ドキュメント タイプが多数のファイルを含むパッケージ バンドルである 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 ラッパーがリソースのバージョン管理されたコピーを作成するようです。バージョン管理されたクローンは必要ありません。最新のコンテンツを含むバニラ ファイルのみが必要です。
バージョン管理されたリソースはどこから来るのですか? 何が起きてる?読むべきドキュメントはありますか?