我正在使用一个继承自NSObject的类'userDC'。此对象正确保存在用户默认值中,没有任何问题 但是现在我又创建了一个继承自userDC的类,名为'appUserDC' 当我尝试在appUserDC中保存数据时,它的父对象正在保存,但是当我尝试将其保存在存档中并尝试将其检索回来时,它不会返回任何保存在userDC属性中的数据。
感谢任何帮助。
感谢。
答案 0 :(得分:1)
使用NSCopying协议方法创建对象类时 -
initWithCoder:
和encodeWithCoder:
从要保存对象的类 - archivedDataWithRootObject
NSKeyedArchiver
方法中,这将返回Data对象。
在检索对象后,您必须取消归档unarchiveObjectWithData
的{{1}}方法。
目标C示例 -
班级NSKeyedUnarchiver
在实现.m文件 -
中AppuserDC
保存对象时 -
- (void)encodeWithCoder:(NSCoder *)encoder
{
[encoder encodeObject:self.myProperty forKey:@"myProperty"];
}
- (id)initWithCoder:(NSCoder *)decoder
{
if((self = [super initWithCoder:decoder]))
{
self. myProperty = [decoder decodeObjectForKey:@"myProperty"];
}
return self;
}
检索对象 -
- (void)saveMyObject:(AppuserDC *)user
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *myEncodedObject = [NSKeyedArchiver archivedDataWithRootObject:user];
[defaults setObject:myEncodedObject forKey:@"user"];
[defaults synchronize];
}