【发布时间】:2011-12-14 11:16:39
【问题描述】:
对不起,如果这很明显,但我正在努力解决如何从 NSFileWrapper 和 docs were not particular enlightening. 中提取组件
我有两个包装。一个持有一个简单的txt文件。另一个持有 pageSettings。 PageSettings 是一个 NSObject,它包含多个 NSString、BOOL 等。这是我的包装器(基于 Apple's Document-Based Application Programming Guide for 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"];
如果有任何解释,我将不胜感激。非常感谢。
【问题讨论】:
标签: iphone objective-c ios icloud nsfilewrapper