私はこのようにエンコードします:
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に従いました。彼のコードは機能しますが、私のコードは機能しません。それで、これをいじって一日を過ごした後、私は助けを求めています。