これが明らかな場合は申し訳ありませんが、NSFileWrapperからコンポーネントを抽出する方法に苦労しており、ドキュメントは特に啓発的ではありませんでした。
私は2つのラッパーを持っています。1つは単純なtxtファイルを保持します。もう1つはpageSettingsを保持します。PageSettingsは、いくつかのNSString、BOOLなどを保持するNSObjectです。これは私のラッパー(AppleのiOS用ドキュメントベースのアプリケーションプログラミングガイドに基づく)であり、情報を再度抽出しようとして立ち往生しています。
if (self.fileWrapper == nil) {
self.fileWrapper = [[NSFileWrapper alloc] initDirectoryWithFileWrappers:nil];
}
NSDictionary *fileWrappers = [self.fileWrapper fileWrappers];
if (([fileWrappers objectForKey:@"page"] == nil) && (self.text != nil)) {
NSData *textData = [self.text dataUsingEncoding:NSUTF8StringEncoding];
NSFileWrapper *textFileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents:textData];
[textFileWrapper setPreferredFilename:@"page"];
[self.fileWrapper addFileWrapper:textFileWrapper];
}
if (([fileWrappers objectForKey:@"pageSettings"] == nil) && (self.pageSettings != nil)) {
NSData *settingsData = [NSKeyedArchiver archivedDataWithRootObject:self.pageSettings];
NSFileWrapper *settingsWrapper = [[NSFileWrapper alloc] initRegularFileWithContents:settingsData];
[settingsWrapper setPreferredFilename:@"pageSettings"];
[self.fileWrapper addFileWrapper:settingsWrapper];
}
だから私の質問は、txtファイルとpageSettingsをself.textとself.pageSettingsにロードする方法ですか?
使用し- (NSData *)serializedRepresentation
ますか?もしそうなら、どのように?または、次のように単純に逆にしますか?
NSDictionary *fileWrappers = [self.fileWrapper fileWrappers];
self.text = [fileWrappers objectForKey:@"page"];
self.pageSettings = [fileWrappers objectForKey:@"pageSettings"];
説明をいただければ幸いです。本当にありがとう。