NSUserDefaults
アプリケーションデータを保存するのではなく、ユーザー設定を目的としています。CoreDataを使用するか、オブジェクトをドキュメント ディレクトリにシリアル化します。NSCoding
動作させるには、クラスにプロトコルを実装する必要があります。
NSCoding
1 )実装Occasion.h
@interface Occasion : NSObject <NSCoding>
2) プロトコルを実装するOccasion.m
- (id)initWithCoder:(NSCoder *)aDecoder {
if (self = [super init]) {
self.title = [aDecoder decodeObjectForKey:@"title"];
self.date = [aDecoder decodeObjectForKey:@"date"];
self.imagePath = [aDecoder decodeObjectForKey:@"imagePath"];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)aCoder {
[aCoder encodeObject:title forKey:@"title"];
[aCoder encodeObject:date forKey:@"date"];
[aCoder encodeObject:imagePath forKey:@"imagePath"];
}
3) ドキュメント ディレクトリ内のファイルにデータをアーカイブします。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *path= [documentsPath stringByAppendingPathComponent:@“occasions”];
[NSKeyedArchiver archiveRootObject:occasions toFile:path];
4) アーカイブを解除するには...
NSMutableArray *occasions = [NSKeyedUnarchiver unarchiveObjectWithFile:path];