background image

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 ]