カスタム クラス/データを iPhone/iPad アプリのファイルに保存しようとしています。
私はクラス RSHighscoreList を持っています
@interface RSHighscoreList : NSObject {
NSMutableArray *list;
}
リストに RSHighscore のオブジェクトを含む
@interface RSHighscore : NSObject {
NSString *playerName;
NSInteger points;
}
すべてをファイルに保存しようとすると
- (void)writeDataStore {
RSDataStore *tmpStore = [[RSDataStore alloc] init];
_tmpStore.highscorelist = self.highscorelist.list;
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:tmpStore forKey:kDataKey];
[archiver finishEncoding];
[data writeToFile:[self dataFilePath] atomically:YES];
[archiver release];
[data release];
}
@interface RSDataStore : NSObject <NSCoding, NSCopying> {
NSMutableArray *highscorelist;
}
- (void)encodeWithCoder:(NSCoder *)encoder {
[encoder encodeObject:highscorelist forKey:@"Highscorelist"];
}
アプリがクラッシュし、エラー メッセージが表示されます
-[RSHighscore encodeWithCoder:]: 認識されないセレクターがインスタンス 0x573cc20 に送信されました *** キャッチされない例外 'NSInvalidArgumentException' によりアプリを終了します。理由: '-[RSHighscore encodeWithCoder:]: 認識されないセレクターがインスタンス 0x573cc20 に送信されました'
RSHighscore が「ラップ」されているにもかかわらず、なぜエラーが RSHighscore について通知するのだろうか。誰もが良い考えを持っていますか?