1
私はクラスのインスタンスをmineと呼びます。これは、基本的には自分自身のクラスの別のオブジェクトの可変配列です。これを永続データに保存する必要がありますが、問題が発生しています。この方法を使用してアーカイブを試しました。ビューコントローラーには、このメソッドを使用してアーカイブを試しました。私は、基本的に、私はアーカイブに自分のクラス(GameDatabase)のインスタンスを保存しようとしている「バックグラウンドを入力しなかったアプリの場所」私のアプリデリゲートにクラスデータ型のパーシスタントデータ
を
[viewController archiveFavorites];
を呼び出します。私は例外をスローしていた場合、それアーカイブ:
EDIT:[OK]をので、相続人、私は私の2クラスで、今実装しようとしています: GameDatabase.m
- (void)encodeWithCoder:(NSCoder *)encoder{
[encoder encodeObject:games forKey:@"Games"];
}
- (id)initWithCoder:(NSCoder *)decoder{
if(self = [super init])
{
games = [decoder decodeObjectForKey:@"Games"];
}
return self;
}
GameRecord.m
- (id)initWithCoder:(NSCoder *)decoder {
if (self = [super init]) {
self.name = [decoder decodeObjectForKey:@"Name"];
self.gameRules = [decoder decodeObjectForKey:@"GameRules"];
self.players = [decoder decodeIntForKey:@"Players"];
self.gameType = [decoder decodeIntForKey:@"GameType"];
self.drinkType = [decoder decodeIntForKey:@"DrinkType"];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)encoder {
[encoder encodeObject:self.name forKey:@"Name"];
[encoder encodeObject:self.gameRules forKey:@"GameRules"];
[encoder encodeInt:self.players forKey:@"Players"];
[encoder encodeInt:self.gameType forKey:@"GameType"];
[encoder encodeInt:self.drinkType forKey:@"DrinkType"];
}
プロトコルに追加する必要がありますか、それともこれらの2つのクラスを実装するだけですか? –
2つの方法がプロトコルです。あなたが別の質問をしていない限り? –
うわー私がやったのは、これらの2つのメソッドを追加して動作するように見えましたが、私はそれらのコードを入れませんでした。あれは正しいですか? –