我有这个令人烦恼的问题,但找不到答案。
由于某种原因,我的整数是二进制的,而不是十进制的。
这只是这一小部分,当我打印整数时,我得到:
0
4
8
12
16
...
我使用的代码:
int *iInt=0;
for (Books *booktitles in appDelegate.book_sos.books ) {
iInt =(int*)iInt + 1;
NSLog(@"AAAAAAA%d",iInt);
}
我用NSNumber,NSInteger尝试过。
有人知道我可能在哪里错吗?提前致谢!
最佳答案
在声明iInt时丢失星号,请勿将其强制转换为int*
。星号表示变量是指向给定类型的指针,当您增加指针时,它会增加指针的大小,在这种情况下为4个字节。您的代码应如下所示:
int iInt=0;
for (Books *booktitles in appDelegate.book_sos.books ) {
iInt =(int)iInt + 1;
NSLog(@"AAAAAAA%d",iInt);
}
有关相同问题的另一个版本,请参见Objective-C: How does 7-1=3?。
注意,这是一个基本的C问题。它与Xcode或Objective-C无关。在任何平台上使用任何C编译器,您都会得到类似的结果。