我有这个恼人的问题,我找不到答案。 出于某种原因,我的整数是二进制的,而不是十进制的。
这只是这个小部分,当我打印我的整数时,我得到: 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一起尝试过。
有人知道我哪里错了吗?提前谢谢!
答案 0 :(得分:0)
您正在创建一个指向int
的指针,而不是int
。不要那样做。
int iInt=0;
for (Books *booktitles in appDelegate.book_sos.books ) {
iInt = iInt + 1;
NSLog(@"AAAAAAA%d",iInt);
}
答案 1 :(得分:0)
从你的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编译器都会得到类似的结果。