シリアライズ オブジェクトの保存機能
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