其一:一般的数据
1:
NSArray *arr = [NSArray arrayWithObjects:@"one",@"two",@"three",nil];//注:最后一个要以nil结尾
[arr writeToFile:@"/tmp/data.txt" tatomically:YES];
//(序列化为xml格式后)保存文件
NSArray *arr2 = [NSArray arrayWithContentsOfFile:FILE_NAME];//read file
NSLog(@"%@",arr2);
2:
[NSKeyedArchiver archiveRootObject:arr toFile:FilePath];
其二:类对象的数据(重点)
首先要将该类 实现 序列化,在.h文件中 实现 NSCoding协议
@interface ContactInformation : NSObject <NSCoding> {
NSString * firstName;// 名字
NSString * lastName;// 姓氏
NSString * fullName;// 全名
NSString * nickname;// 昵称
NSString * englishName;// 英文名
NSString * birthday; // 生日 format: 19800101
NSString * mobile;// 手机
NSInteger userId;//id
}
@property(nonatomic,copy)NSString * firstName;// 名字
@property(nonatomic,copy)NSString * lastName;// 姓氏
@property(nonatomic,copy)NSString * fullName;// 全名
@property(nonatomic,copy)NSString * nickname;// 昵称
@property(nonatomic,copy)NSString * englishName;// 英文名
@property(nonatomic,copy)NSString * birthday; // 生日 format: 19800101
@property(nonatomic,copy)NSString * mobile;// 手机
@property(nonatomic,assign)NSInteger userId;//id
- (id) initWithContactFirstName:(NSString *) _firstName
lastName:(NSString *) _lastName
fullName:(NSString *) _fullName
nickname:(NSString *) _nickname
englishName:(NSString *) _englishName
birthday:(NSString *) _birthday
mobile:(NSString *) _mobile
userId:(NSInteger)_userId;//id;
@end
在.m中实现 序列化 和 反序列化 方法
//将对象编码(即:序列化)
- (void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:firstName forKey:@"firstName"];
[aCoder encodeObject:lastName forKey:@"lastName"];
[aCoder encodeObject:fullName forKey:@"fullName"];
[aCoder encodeObject:nickname forKey:@"nickname"];
[aCoder encodeObject:englishName forKey:@"englishName"];
[aCoder encodeObject:birthday forKey:@"birthday"];
[aCoder encodeObject:mobile forKey:@"mobile"];
[aCoder encodeInteger:userId forKey:@"userId"];
}
//将对象解码(反序列化)
- (id) initWithCoder:(NSCoder *)aDecoder{
self = [super init];
if (self) {
self.firstName=[aDecoder decodeObjectForKey:@"firstName"];
self.lastName=[aDecoder decodeObjectForKey:@"lastName"];
self.fullName=[aDecoder decodeObjectForKey:@"fullName"];
self.nickname=[aDecoder decodeObjectForKey:@"nickname"];
self.englishName=[aDecoder decodeObjectForKey:@"englishName"];
self.birthday=[aDecoder decodeObjectForKey:@"birthday"];
self.mobile=[aDecoder decodeObjectForKey:@"mobile"];
self.userId=[aDecoder decodeIntegerForKey:@"userId"];
}
return self;
}
//将 该类 些入 文件的代码
//获取路径
//参数NSDocumentDirectory要获取那种路径
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];//去处需要的路径
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"fileName.plist"];
NSMutableArray * array =[[NSMutableArray alloc]init];
[DatabaseOperations queryAllContactsWriteToMutableArray:array];
//上面的代码是 一个 获得上面的对象类数组的 查找类,调用其类方法
// [array writeToFile:path atomically:YES];
BOOL boo=[NSKeyedArchiver archiveRootObject:array toFile:path];
NSLog(@"bool : %d",boo);
[array release];