有谁知道为什么NSLog和NSString会出现一次性错误?它在99%的程序中工作正常,但由于某种原因,这个错误出现在我的模型的描述方法中:
Example code:
localFileId = 7;
type = 2;
localId = 5;
NSLog(@"CachedFile localId=%d, 2=%d, localFileId=%d, type=%d, path=%@", localId, 2, localFileId, type, self.path);
Example Result:
CachedFile localId=5, 2=0, localFileId=2, type=7, path=(null)
注意插入那里的“0”,它应该是“2 = 2”。这也发生在NSString stringWithFormat上。
答案 0 :(得分:0)
%d需要一个int或long参数,即堆栈上的4个字节。
你没有显示localId的声明,它的大小是否正确?如果%d告诉NSLog读取4个字节,则为2个字节,这意味着NSLog也会读取下一个参数的前2个字节,然后是2个字节,等等。
short shortX = 1;
int intX = 2;
NSLog(@"shortX = %d, intX = %d", shortX, intX);
打印:shortX = 1, intX = 2