NSFileWrapperベースのUIDocumentを使用するアプリがあります。私のファイルラッパーは「XXX.cp」という名前のディレクトリで、「photo.data」と「photo.metadata」の2つのサブファイルがあります。ドキュメントの保存と読み込みは正常に行われているようですが、[設定]、[ストレージの管理]、[不明]に移動すると、サブファイルが個別に一覧表示されます。
これらの2つのサブファイルの代わりに「XXX.cp」が表示されることを期待していました。ドキュメントUTIを適切に設定し、エクスポートしたと思います。
そして、私はファイルラッパーを正しく作成していると思います(特に読み取り/書き込みが正常であるため):
- (void)encodeObject:(id<NSCoding>)object toWrappers:(NSMutableDictionary *)wrappers preferredFilename:(NSString *)preferredFilename {
@autoreleasepool {
NSMutableData * data = [NSMutableData data];
NSKeyedArchiver * archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:object forKey:@"data"];
[archiver finishEncoding];
NSFileWrapper * wrapper = [[NSFileWrapper alloc] initRegularFileWithContents:data];
[wrappers setObject:wrapper forKey:preferredFilename];
}
}
- (id)contentsForType:(NSString *)typeName error:(NSError *__autoreleasing *)outError {
if (self.captionedPhotoMetadata == nil || self.captionedPhoto == nil) {
*outError = [[NSError alloc] initWithDomain:CaptionedPhotoErrorDomain code:CaptionedPhotoInvalidDocument userInfo:[NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Invalid document!", @""), NSLocalizedDescriptionKey, nil]];
return nil;
}
NSMutableDictionary * wrappers = [NSMutableDictionary dictionary];
[self encodeObject:self.captionedPhotoMetadata toWrappers:wrappers preferredFilename:METADATA_FILENAME];
[self encodeObject:self.captionedPhoto toWrappers:wrappers preferredFilename:DATA_FILENAME];
NSFileWrapper * fileWrapper = [[NSFileWrapper alloc] initDirectoryWithFileWrappers:wrappers];
return fileWrapper;
}
しかし、それでも葉巻はありません。誰もが問題が何であるか知っていますか?ありがとう!