【问题标题】:Different Values in Memory when using NSData vs NSMutableData使用 NSData 与 NSMutableData 时内存中的不同值
【发布时间】:2016-08-04 13:20:29
【问题描述】:

我正在尝试编写一些代码来组装数据包以通过网络发送;但是,我遇到了组装数据包的问题。这是一些说明我的情况的代码:

NSMutableData *data1 = [NSMutableData dataWithLength:3];
NSData * data2 = [[NSData alloc] initWithBytes:(unsigned char[]){0xAA, 0xAA, 0xAA} length:3];
[data1 appendBytes:(unsigned char[]){0xAA, 0xAA, 0xAA} length: 3];

当我设置断点并读取*data1*data2 的内存值时,data1 中只有垃圾值,而data2 将在内存中拥有0xAA

我查看了 Apple 开发人员参考资料,但似乎没有找到任何相关内容。不过,我注意到的一件有趣的事情是 data1 的初始化应该将字节清零,我也没有真正看到。

所以我想知道我的代码中是否存在一些明显的错误,或者对 NSData/MutableData 对象有一些基本的误解,因为我对 Objective C 还很陌生?任何帮助,将不胜感激。谢谢!

编辑:我很笨...如果我查看data1 的内存,而不是*data1,我可以找到我附加的值。

【问题讨论】:

    标签: objective-c memory


    【解决方案1】:

    我查看了错误的值,我应该查看的是 data1 而不是 *data1 的内存。

    【讨论】:

      猜你喜欢
      • 2018-01-14
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多