私はクラス「MainClass」を持っています。そのクラスはNSCodingプロトコルを実装します。そのクラスでは、別のクラス "Object"のオブジェクトを持つ配列があります。これはNSCodingプロトコルも実装しています。nsuserdefaultsのデータを扱うときにアプリケーションがクラッシュする
[NSConcreteMutableDataプロパティ]:認識されていないセレクタ私はNSUserDefaultsの「MainClass」のオブジェクト、その後アーカイブしない、それをアーカイブし、配列からクラス「オブジェクト」のオブジェクトを取得し、それをプロパティを使用しようとすると、私はメッセージを取得しますインスタンスに送信されます。
どうしたらよいですか?それを修正するには?
編集: これは私がNSUserDefaultsを使用したコードです:
(1)あなたはユーザーdefualtsから得たオブジェクトを保持していない:
- (Settings *) readData
{
NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
NSData *dataRepresentingSettings = [currentDefaults objectForKey:@"data"];
if (dataRepresentingSettings != nil) {
return (MainClass *)[NSKeyedUnarchiver unarchiveObjectWithData:dataRepresentingSettings];
}
return nil;
}
- (void) saveData
{
[[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver archivedDataWithRootObject:self] forKey:@"data"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
nsuserdefaultsを保存/ロード/使用する場所にコードを追加できますか?あなたが間違って関数を呼び出すようですが、コードなしでどこをどこに伝えるのが難しいかのようです。 –
'NSUserDefaults'にアクセスしている箇所に関連コードを投稿してください。 –