3

这是我的代码:

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

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

@property (nonatomic) int *index;

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

4

2 回答 2

12

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

鉴于index似乎是一个NSArray(或其他一些集合类)的索引,我认为你想做到这一点int而不是int *解决你的问题。最好还是让它无符号,比如NSUInteger,这是从count方法返回的类型。

另外我认为你会想要使用前缀增量而不是后缀增量,以便if测试使用新增加的值,而不是以前的值。

于 2012-08-01T09:33:03.160 回答
0

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

于 2012-08-01T09:50:33.767 回答