UIDocument loadFromContents应该返回一个NSFileWrapper;而是返回NSConcreteData

时间:2013-07-02 16:16:04

标签: ios nsdata uidocument nsfilewrapper

我正在创建一个文本编辑器应用程序,它将每个文档存储为NSFileWrapper目录,文档文本和文档标题作为目录中的单独文件。我希望contents的{​​{1}}部分是NSFileWrapper,但事实并非如此。我的代码如下(它属于UIDocument的子类):

loadFromContents: (id) contents

当我尝试调用此方法时,我收到此错误:

  

***由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [NSConcreteData fileWrappers]:   无法识别的选择器发送到实例0x9367150'

以下是我的// loads document data to application data model - (BOOL) loadFromContents:(id)contents ofType:(NSString *)typeName error:(NSError *__autoreleasing *)outError { // from the contents, extract it so that we have the properties initialized self.fileWrapper = (NSFileWrapper *) contents; NSLog(@"%@", [contents class]); //** returns NSConcreteData // get the fileWrapper's children NSDictionary *contentsOfFileWrapper = [contents fileWrappers]; // assign things to the document! // can also be done lazily through getters self.text = [contentsOfFileWrapper objectForKey:TEXT_KEY]; self.title = [contentsOfFileWrapper objectForKey:TITLE_KEY]; if ([self.delegate respondsToSelector:@selector(noteDocumentContentsUpdated:)]){ [self.delegate noteDocumentContentsUpdated:self]; } return YES; } 功能,如果它有帮助:

contentsForType:

谢谢!

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。我的Documents文件夹中有一个.DS_Store文件,它搞砸了结果。一旦我添加了一个if语句来排除一切就好了。