复杂对象的归档和反归档

1.首先对象类遵守NSCoding

   实现:代理方法

   // 编码 **********对应于归档(存)的时候*********
-(void)encodeWithCoder:(NSCoder *)aCoder

{

    [aCoder encodeObject:self.name forKey:@"name"];
    [aCoder encodeObject:self.sex forKey:@"sex"];
    
}
// 解码(反编码---取值)
-(id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super init];
    if (self) {
        self.name = [aDecoder decodeObjectForKey:@"name"];
        self.sex = [aDecoder decodeObjectForKey:@"sex"];
        
    }
    return self;
}

2.归档---把复杂对象存入沙盒中

   初始化实例对象---路径(文件名)--- 初始化NSKeyedArchiver---利用初始化的NSKeyedArchiver对复杂对象进行编码---结束编码---存入沙盒

 

3.反归档---从沙盒中读取复杂对象

  路径---根据路径取出二进制(NSData)---创建NSkeyedUnarchiver ---解码---结束反归档

 

4.简单对象的读写

   字符串(写)

   NSData(写)

    简单对象(读)

    /**
      IOS中只有NSString NSArray NSDictionry NSData(以及他们的可变类)可以直接在沙盒里面写入,其他的不可以***数组
      字典等容器里面存储的数据必须是上述的数据
     
     */

 

你可能感兴趣的:(对象)