int ++增加4

时间:2012-08-01 09:25:42

标签: iphone objective-c ios int

这是我的代码:

- (IBAction)NextTouched:(id)sender {
    NSLog(@"Index = %i", index);
    if([project getCount]>(index++)) {
        [self setUI:index];
    }
}

索引是一个整数,在我的.h文件中声明:

@property (nonatomic) int *index;

但是每次我点击按钮时,日志都会显示整数是4。你能告诉我为什么吗?

2 个答案:

答案 0 :(得分:12)

它上升4的原因是因为index指针。当您递增指针时,其值会增加它指向的数据类型的大小,在本例中为int,即4个字节。

鉴于index似乎是NSArray(或其他一些集合类)的索引,我认为您希望将其int而不是int *来解决你的问题。最好还是使它无符号,例如NSUInteger,这是从count方法返回的类型。

此外,我认为您将要使用前缀增量而不是后缀增量,以便if测试使用新增加的值,而不是之前的值。

答案 1 :(得分:0)

只需将index定义为整数变量而不是指针,如果要在增量前使用index ++打印该值,则使用++ index增加值,然后打印