首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >档案在iOS 6和iOS 7中的价值是不同的

档案在iOS 6和iOS 7中的价值是不同的
EN

Stack Overflow用户
提问于 2013-09-19 07:22:12
回答 1查看 423关注 0票数 3

当我归档iOS 6和iOS 7时,归档的值是不同的。

这一切为什么要发生?

MyDTO.h

代码语言:javascript
复制
@property (nonatomic, strong) NSString *aaa;
@property (nonatomic, strong) NSString *bbb;

MyDTO.m

代码语言:javascript
复制
- (void)encodeWithCoder:(NSCoder *)encoder
{
    [encoder encodeObject:_aaa forKey:@"aaa"];
    [encoder encodeObject:_bbb forKey:@"bbb"];
}

MyMethod

代码语言:javascript
复制
- (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];
}

编辑

错误发生在以下步骤。

  1. DTO档案(iOS 6)

  1. 操作系统的Up版本(iOS 6 -> iOS 7)

  1. DTO (iOS 7) <-错误!

错误日志

代码语言:javascript
复制
[NSKeyedUnarchiver initForReadingWithData:]: incomprehensible archive (0x48, 0xfffffff2, 0xffffffd7, 0xffffff89, 0xffffff80, 0xffffffa8, 0x70, 0xffffff8d)

在以下步骤中正常。

  1. DTO档案(iOS 6)

  1. DTO (iOS 6)的研究

  1. DTO档案(iOS 7)

  1. DTO (iOS 7)的研究

我以为档案的价值是不一样的。

EN

回答 1

Stack Overflow用户

发布于 2014-11-04 13:25:09

您可以传输一个JSON字符串而不是NSData,并添加方法从JSON初始化您的DTO,以及从您的DTO创建一个JSON。我使用这种方法通过蓝牙低能量交换数据,它在iOS 7和iOS 8设备之间工作得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18888524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档