Tod*_*ies 3 iphone int objective-c ios
这是我的代码:
- (IBAction)NextTouched:(id)sender {
NSLog(@"Index = %i", index);
if([project getCount]>(index++)) {
[self setUI:index];
}
}
Run Code Online (Sandbox Code Playgroud)
索引是一个整数,在我的.h文件中声明:
@property (nonatomic) int *index;
Run Code Online (Sandbox Code Playgroud)
但是每次我点击按钮时,日志都会显示整数上升了4.你能告诉我为什么吗?
tro*_*foe 12
它上升4的原因是因为它index是一个指针.当您递增指针时,其值会增加它指向的数据类型的大小,在本例中为a int,即4个字节.
鉴于index似乎是NSArray(或其他一些集合类)的索引,我认为你想做到int而不是int *解决你的问题.更好的是仍然使它无符号,例如NSUInteger,从count方法返回的类型.
另外我认为你会想要使用前缀增量而不是后缀增量,以便if测试使用新增加的值,而不是前一个值.