我试图编写一些代码来汇编通过网络发送的数据包;但是,我遇到了组装数据包的问题。这里有一些代码说明了我的情况:
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
,我会找到我追加的值。
答案 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
的记忆。