当我归档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"];
}MyMethod
- (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];
}编辑
错误发生在以下步骤。
错误日志
[NSKeyedUnarchiver initForReadingWithData:]: incomprehensible archive (0x48, 0xfffffff2, 0xffffffd7, 0xffffff89, 0xffffff80, 0xffffffa8, 0x70, 0xffffff8d)在以下步骤中正常。
或
我以为档案的价值是不一样的。
发布于 2014-11-04 13:25:09
您可以传输一个JSON字符串而不是NSData,并添加方法从JSON初始化您的DTO,以及从您的DTO创建一个JSON。我使用这种方法通过蓝牙低能量交换数据,它在iOS 7和iOS 8设备之间工作得很好。
https://stackoverflow.com/questions/18888524
复制相似问题