iOS开发中的数据持久化-归档

对对象进行归档

  1. 使对象遵守NSCoding协议
  2. 实现对象的encodeWithCoder:方法,在该方法中调用[aCode encodeObject:forKey]方法来保存需要保存的数据
  3. 调用NSKeyedArchiverarchiveRootObject:toFile:方法,传入需要归档的文件,和归档的目标位置


解档

  1. 使对象遵守NSCoding协议
  2. 实现对象的initWithCoder:方法,在该方法中调用[aDecoder decodeObjectForKey:方法解析所需的属性
  3. 调用NSKeyedUnarchiverunarchiveObjectWithFile:方法进行解档


注意事项

  1. 如果归档时,所存的属性中包含自定义的对象,则这些自定义的对象也需要遵循NSCoding协议,并实现encodeWithCoder:方法
  2. 如果解档时,解析的属性中包含自定义的对象,则这些自定义的对象也需要遵循NSCoding协议,并实现initWithCoder:方法
  3. initWithCoder:方法中,只有当父类遵守了NSCoding协议时,才能使用[super initWithCoder:]方法
  4. 对于UIView以及其子类,initWithCoder:方法先于awakeFromNib方法调用。前者在解析文件、子控件还未加载时调用,后者在子控件全部加载完毕后调用。

你可能感兴趣的:(iOS开发中的数据持久化-归档)