iOS 四种保存数据的方式
在 iOS 开发过程中,不管是做什么应用,都会碰到数据保存的问题。将数据保存到本地,
能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好。下面介绍
一下数据保存的方式:
1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要 遵守 NSCoding 协议,
并且该对象对应的类必须提供
encodeWithCoder:和 initWithCoder:方法。前一个方法告诉系统
怎么对
对象进行编码,而后一个方法则是告诉系统怎么对对象进行解码。例如对 Possession
对象归档保存。
定义
Possession:
@interface Possession:NSObject<NSCoding>{//遵守 NSCoding 协议
NSString *name;//待归档类型
}
@implementation Possession
-(void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:name forKey:@"name"];
}
-(void)initWithCoder:(NSCoder *)aDecoder{
name=[[aDeCoder decodeObjectforKey:@"name"] retain];
}
归档操作:
如果对
Possession 对象 allPossession 归档保存,只需要 NSCoder 子类 NSKeyedArchiver 的方
法
archiveRootObject:toFile: 即可。
NSString *path = [self possessionArchivePath];
[NSKeyedArchiver archiveRootObject:allPossessions toFile: path ]