gpt4 book ai didi

ios - iOS 6 和 iOS 7 中存档的值不同

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:41:30 25 4
gpt4 key购买 nike

当我存档 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];
}

编辑

以下步骤出现错误。

  1. DTO 存档 (iOS 6)
  2. 操作系统的升级版本(iOS 6 -> iOS 7)
  3. DTO 归档 (iOS 7) <- 错误!

错误日志

[NSKeyedUnarchiver initForReadingWithData:]: incomprehensible archive (0x48, 0xfffffff2, 0xffffffd7, 0xffffff89, 0xffffff80, 0xffffffa8, 0x70, 0xffffff8d)

以下步骤正常。

  1. DTO 存档 (iOS 6)
  2. DTO 归档 (iOS 6)

  1. DTO 存档 (iOS 7)
  2. DTO 归档 (iOS 7)

我认为文件的值(value)是不同的。

最佳答案

您可以传输 JSON 字符串而不是 NSData,并添加从 JSON 初始化 DTO 以及从 DTO 创建 JSON 的方法。我正在使用这种方法通过低功耗蓝牙交换数据,它在 iOS 7 和 iOS 8 设备之间运行良好。

关于ios - iOS 6 和 iOS 7 中存档的值不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18888524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com