iOS 数据持久化-归档
来源:互联网 发布:巴西黑帮知乎 编辑:程序博客网 时间:2024/05/18 04:30
1.将任何对象,或数据结构转换为NSData类对象的过程,成为归档,亦称之为数据的序列化
2.解归档,首先要确保你有同样的数据结构来接收解归档的数据
需要归档的数据结构中,任何对象都必须遵从NSCoding,实现协议方法
- (void)encodeWithCoder:(NSCoder*)aCoder; // 归档时调用,
- (id)initWithCoder:(NSCoder *)aDecoder; //解归档时调用
使用KeyedAchiever进行归档,使用KeyedUnAchiever进行解归档
注:多层数据结构嵌套是时归档要进行深拷贝,即,如果要归档的对象中有子对象,子对象应该继续归档,以下为例:
WWCClass类中有一个WWCStudent对象,存储在WWCClass类中的一个数组中,对WWCClass类归档时如下结构
类WWCClass类Student:
@implementation
- (void)encodeWithCoder:(NSCoder
{
}
- (id)initWithCoder:(NSCoder
{
}
类WWCStudent:
@interfaceWWCStudent : NSObject
@property (copy)NSString*name;
@property (copy)NSString*ID;
@propertyNSUInteger age;
@end
@implement WWCStudent
- (void)encodeWithCoder:(NSCoder*)aCoder
{
//
}
- (id)initWithCoder:(NSCoder*)aDecoder
{
}
main 函数
归档:
WWCClas*student = [[WWCClasalloc]init];
[student addStudent];// 此函数是为student添加数据
NSMutableData *data= [[NSMutableData alloc]init];
NSKeyedArchiver *achiver= [[NSKeyedArchiver alloc]initForWritingWithMutabl
[achiver encodeObject:studentforKey:@"student"];
[achiver finishEncoding];
[datawriteToFile:PATHatomically:YES];
解归档
NSData *data= [NSData dataWithContentsOfFile:PATH];
NSKeyedUnarchiver *unchiver= [[NSKeyedUnarchiver alloc]initForReadingWithData:data];
WWCClas* student = [[unchiver decodeObjectForKey:@"student"]retain];
[unchiver finishDecoding];
- iOS 数据持久化-归档
- iOS 归档持久化数据
- iOS数据持久化 归档
- IOS数据持久化--归档
- iOS数据持久化之归档
- IOS数据持久化之对象归档
- IOS数据持久化之归档NSKeyedArchiver
- iOS开发 数据持久化-归档
- iOS数据持久化之归档
- iOS数据持久化之NSKeyedArchiver(归档)
- iOS数据持久化-归档NSKeyedArchiver
- iOS数据持久化之归档NSKeyedArchiver
- iOS数据持久化 归档 plist文件
- ios 数据持久化之 归档
- IOS 数据持久化只归档与取消归档
- iOS 数据持久化(归档与反归档)
- iOS中的数据持久化,归档和反归档
- IOS之数据持久化(归档与反归档)
- Android开发_ContentProvider
- 解释下 JavaScript 中 this 是如何工作的。
- 面向对象
- ios多线程操作(四)—— GCD核心概念
- iOS移动开发数据库相关操作,基于…
- iOS 数据持久化-归档
- android里的各种坑 -1
- iOS 开发strong weak assign copy
- C语言的学习方法
- 接口和抽象类有什么区别
- android攻城狮学习笔记3/19『个人笔记!非教程!慎入!』
- css01
- 【数位DP】 HDU 3652 B-number
- 数据结构--解决散列冲突,平方探测法