int ++增加4

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测试使用新增加的值,而不是前一个值.