我这样编码:
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:data forKey:@"Object"];
[archiver finishEncoding];
然后,从磁盘检索保存的文件后,我尝试像这样解码它:
Object *object = (Object*)[unarchiver decodeObjectForKey:@"Object"];
问题是这永远不会被解码回 Object* 类型。它仍然是 NSMutableData。因此,当我尝试访问诸如“object.name”之类的对象的某些属性时,我得到 -[NSConcreteMutableData name]: unrecognized selector sent to instance 0x2c8510'。
我遵循了 Ray Wenderlich 的教程http://www.raywenderlich.com/1914/how-to-save-your-app-data-with-nscoding-and-nsfilemanager。尽管他的代码有效,但我的却不行。因此,在搞砸了一天之后,我正在寻求帮助。