使用NSData与NSMutableData

时间:2016-08-04 13:20:30

标签: objective-c memory

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

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 1}}在记忆中。

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

所以我想知道我的代码中是否存在一些明显的错误,或者是对NSData / MutableData对象的一些基本误解,因为我认为这是一个很新的问题。目标C?任何帮助,将不胜感激。谢谢!

编辑:我愚蠢......如果我查看data1的记忆,而不是*data1,我会找到我追加的值。

1 个答案:

答案 0 :(得分:0)

我正在查看错误的值,我本应该关注<?php // Start the session. session_start(); // The example total processes. $total = 20; // The array for storing the progress. $arr_content = array(); // Loop through process for ($i = 1; $i <= $total; $i++) { // Calculate the percentation $percent = intval($i / $total * 100); // Put the progress percentage and message to array. $arr_content['percent'] = $percent; $arr_content['message'] = $i . " row(s) processed."; // Write the progress into file and serialize the PHP array into JSON format. // The file name is the session id. file_put_contents("tmp/" . session_id() . ".txt", json_encode($arr_content)); // Sleep one second so we can see the delay sleep(1); } 而非data1的记忆。