单击添加错误编号的按钮,向变量添加+1

时间:2013-04-23 20:55:09

标签: ios objective-c nsinteger

我是Objective-c的新手,可能很容易解决,但无法在任何地方找到答案....

我想在每次用户点击按钮时为变量添加+1,但不是添加+1而是添加+4

- (IBAction)addNewSet:(UIButton *)sender {
    NSLog(@"%i",_sliderTag);
    _sliderTag += 1;
   NSLog(@"ADD NEW    %i",_sliderTag);
}

_sliderTag已经是NSInteger

@property (nonatomic,assign) NSInteger* sliderTag;

执行添加后,第一个NSLog打印0和第二个打印4。谁有人解释为什么?这是为了打印0第一个,因为这个变量的点是设置标签的计数器。

2 个答案:

答案 0 :(得分:6)

听起来_sliderTag是一个指向大小为4个字节的类型的指针。将1添加到指针会使其增加所指向类型的大小。以下两个例子说明了不同之处:

NSInteger foo = 0;
foo += 1;
NSLog(@"result: foo = %d", foo);    // result: foo = 1

NSInteger *bar = 0;                 // note the '*'
bar += 1;
NSLog(@"result: bar = %d", bar);    // result: bar = 4

答案 1 :(得分:1)

首先,确保_sliderTag是int或Integer或int而不是Integer *或int *,其次,不要使用%i打印它,但是使用%d