//归档数据,并用二进制写入文件
NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *keyedArchiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[keyedArchiver encodeObject:Users forKey:@"users"];//Users已知的保存用户信息的数组
[keyedArchiver finishEncoding];
[data writeToFile:@"归档数据保存路径" atomically:YES];//读取上面已经保存好的文件,并反归档后在程序中使用数据
NSData *newData = [NSData dataWithContentsOfFile:@"归档数据保存路径"];
NSKeyedUnarchiver *keyedUnArchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:newData];
NSArray *users = [keyedUnArchiver decodeObjectForKey:@"users"];
for (User *user in users) {
NSLog(@"name = %@ pw = %@",u.name,u.password);
}
注意:需要归档的数据中如果含有自定义的对象,那么该对象需遵守<NSCoding>协议,并重写如下方法:
- (void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:对象属性 forKey:@"归档的key"];
}- (id)initWithCoder:(NSCoder *)aDecoder{
self = [super init];
if (self) {
实例变量 = [aDecoder decodeObjectForKey:@"归档的key"];
}
return self;
}
使用Objective-C进行iOS开发:关键技术和实践
本文深入探讨了Objective-C在iOS开发领域的应用,涵盖了从基础语法到高级特性,包括对象引用、消息传递、协议、泛型、垃圾回收机制等。同时,文章还分享了实际开发中的最佳实践,帮助开发者更高效地完成iOS应用的构建。
35

被折叠的 条评论
为什么被折叠?



