当我归档 MyDTO 时,归档的值在 iOS 6 和 iOS 7 中是不同的。
为什么会这样?
MyDTO.h
@property (nonatomic, strong) NSString *aaa;
@property (nonatomic, strong) NSString *bbb;
我的DTO.m
- (void)encodeWithCoder:(NSCoder *)encoder
{
[encoder encodeObject:_aaa forKey:@"aaa"];
[encoder encodeObject:_bbb forKey:@"bbb"];
}
我的方法
- (void)test {
MyDTO *myDTO = [[MyDTO alloc] init];
myDTO.aaa = @"1";
myDTO.bbb = @"2";
//data is different in iOS 6 and iOS 7
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:myDTO];
}
编辑
错误发生在以下步骤中。
- DTO 存档 (iOS 6)
- 操作系统的升级版本(iOS 6 -> iOS 7)
- DTO 的归档(iOS 7)<-错误!
错误日志
[NSKeyedUnarchiver initForReadingWithData:]: incomprehensible archive (0x48, 0xfffffff2, 0xffffffd7, 0xffffff89, 0xffffff80, 0xffffffa8, 0x70, 0xffffff8d)
在以下步骤中正常。
- DTO 存档 (iOS 6)
- DTO 的归档 (iOS 6)
或者
- DTO 存档 (iOS 7)
- DTO 的归档 (iOS 7)
我假设档案的价值是不同的。