抱歉,如果这很明显,但我正在努力解决如何从 NSFileWrapper 中提取组件,并且文档并不是特别有启发性。
我有两个包装纸。一个持有一个简单的txt文件。另一个持有 pageSettings。PageSettings 是一个 NSObject,它包含几个 NSString、BOOL 等。这是我的包装器(基于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"];
我将非常感谢任何解释。非常感谢。