シリアライズ オブジェクトの保存機能

NSCodingプロトコルを実装する。

保存したしたいオブジェクトの例

@interface Poi:NSObject {
 NSObject *hoge;
}

encodeWithCoder

- (void)encodeWithCoder:(NSCoder *)encoder {
  [encoder encodeObject:self.poi.hoge forKey:@"hoge"];
}

initWithCoder:

- (id)initWithCoder:(NSCoder *)coder {
self.poi.hoge = [coder decodeObjectForKey:@"hoge"];
}

オブジェクトデータの保存

NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *encoder = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];	
[encoder encodeObject:self.poi forKey:@"poi"];
[encoder finishEncoding];	
[data writeToFile:filePath atomically:YES];
[encoder release];


オブジェクトデータの取り出し

NSMutableData *data  = [NSMutableData dataWithContentsOfFile:filePath];
NSKeyedUnarchiver *decoder = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
self.poi = [decoder decodeObjectForKey:@"poi"];
[decoder finishDecoding];
[decoder release];

ファイルパスの取り方は

最終更新:2012年03月04日 17:11