对于这些变量:
NSInteger dataStart;
uint64_t dataSize[1];
const unsigned char *beginning;
NSInteger bytesEnd;
…在这些值下:
dataStart = 499
dataSize[0] = 427
beginning = 9060864
bytesEnd = 9061793
…以下代码:
NSLog(@"dataStart = %d, dataSize[0] = %d, beginning = %d, bytesEnd = %d",
dataStart, dataSize[0], (NSInteger)beginning, bytesEnd);
…发送到控制台:
dataStart = 499, dataSize[0] = 427, beginning = 0, bytesEnd = 9060864
换句话说,在数组后面插入了一个额外的零,从而使其他变量发生碰撞。它一直这样做。我使用的是Xcode3.2.3。这里发生了什么?
[编辑强调:这不仅仅是打印一个值应该为零的老习惯,因为强制转换是错误的。它插入了一个额外的零,然后打印正确的起始值,在这里它应该打印字节发送,而不是打印字节发送。]
谢谢,