私は現在、NSKeyedArchiverで使用されるカスタムクラスを使用するこのブログを使用しています。すべてが正しいように見えますが、「学生」のさまざまなインスタンスを取得する方法を考えています。
http://keeptheseinmind.blogspot.com/2011/10/nskeyedarchiver-tutorial.html
このチュートリアルでは、アプリケーションが終了するたびに、カスタムクラス「students」の新しいインスタンスが作成されます。そして、NSKeyedArchiver内にはこれらの「学生」インスタンスが多数あると想定しましたが、アクセスできるのはそのうちの1つだけです。
ディスクに保存する
- (void)saveDataToDisk {
NSString *path = @"~/Documents/data";
path = [path stringByExpandingTildeInPath];
NSMutableDictionary *rootObject;
rootObject = [NSMutableDictionary dictionary];
[rootObject setValue:student forKey:@"student"];
[NSKeyedArchiver archiveRootObject:rootObject toFile:path];
}
ディスクからの読み込み
- (void)loadDataFromDisk {
NSString *path = @"~/Documents/data";
path = [path stringByExpandingTildeInPath];
NSMutableDictionary *rootObject;
rootObject = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
if ([rootObject valueForKey:@"student"]) {
student = [rootObject valueForKey:@"student"];
}
}
編集:
私は間違っています。アプリケーションが終了するたびに、インスタンスが互いに上書きし合っています。面白い...
ただし、私の目標は、1つまたは複数のNSKeyedArchiver内に「学生」のインスタンスを多数作成することです。任意のアイデアをいただければ幸いです。