【发布时间】: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