1.基本的数据类型如NSString、NSDictionary、NSArray、NSData、NSNumber等可以直接用NSKeyedArchiver归档和恢复。
2.不是所有的对象都可以直接用这种方法归档,只有遵守了NSCoding协议的对象才可以。
3.NSCoding的协议有2个方法
- (void)encodeWithCoder:(NSCoder *)encoder
每次归档对象时,都会调用这个方法,一般在这个方法里面指定如何规定对象中的每个实例变量,可以使用[encoder encodeObject:self.access_token forKey:@""];方法归档实例变量。
- (id)initWithCoder:(NSCoder *)decoder:
每次从文件中恢复(解码)对象时,都会调用这个方法,一般在这个方法里面指定如何解码文件中的数据为对象的实例变量,可以使用[decoder decodeObjectForKey:@"access_token"];方法解码变量。
注意点:
如果父类也遵守了NSCoding协议,请注意:
应该在encodeWithCoder方法中加一句[super encodeWithCoder];确保继承的变量也能归档
在initWithCoder:方法中加self =[super initWithCoder:decoder];确保继承的变量也能解码(恢复)
本文详细介绍了如何使用NSCoding协议实现Objective-C对象的归档与恢复过程,包括遵守NSCoding协议的方法及其应用。
3042

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



