当我对MyDTO进行归档时,iOS 6和iOS 7中的档案价值不同。
为什么会出现这种情况?
MyDTO.h
@property (nonatomic, strong) NSString *aaa;
@property (nonatomic, strong) NSString *bbb;
MyDTO.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)
我假设归档值不同是由于版本不同引起的。