私はNSFileWrapperベースのUIDocumentを使用するアプリケーションを持っています。私のファイルラッパーは "XXX.cp"という名前のディレクトリで、 "photo.data"と "photo.metadata"という2つのサブファイルがあります。ストレージ\不明を管理するサブファイルが別々に記載されています\私はセッティングに行くときしかし、細かいドキュメントを保存およびロードするようだ:iCloud&NSFileWrapper:設定で2つの異なるファイルとして表示
私はそれが「XXX.cp」を表示するように期待の代わりましたこれら2つのサブファイル。私は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;
}
しかしまだ葉巻はありません。誰でも問題が何であるか知っていますか?ありがとう!
私もこの問題を抱えていました。ファイル拡張子には3文字しかありません。ディレクトリベースのファイルラッパーに拡張子.tfxを使用します。最近私のラッパーファイルを私のユビキタスコンテナ内の別のフォルダに置くことにしました。私はSyncDocumentsを呼び出します。そうすれば、個々のファイルがユーザーのために表示されません。しかし、これは私のUIDocumentサブクラスファイルがユーザーと直接対話するためのものではないので、本当に欲しいものです。 –
私は全く同じ問題を抱えていますが、私のファイル拡張子には3つの文字とアイコンがあります。私はこれが輸出されたUTIのいくつかの釣り合いの悪い設定だと思う。私の感想は、iCloudに何らかのキャッシュがあり、拡張子を.cpから.capに変更すると、壊れたものが修正されたということです。 – auco
ヘイレイはあなたのチュートリアルを大好きですが、私はまだ問題があります。パッケージとして表示するラッパーを取得できますが、nsmetadataqueryで表示されません。 *を使ってすべての文書を検索すると、イベントではありません。私の最初のドキュメントタイプは動作しますが、私のイメージはありません – zambono