Jon*_*rft 1 objective-c nsinteger ios
我是Objective-c的新手,可能很容易解决,但无法在任何地方找到答案....
每次用户点击按钮时,我都会尝试为变量添加+1,但不是添加+1,而是添加+4
- (IBAction)addNewSet:(UIButton *)sender {
NSLog(@"%i",_sliderTag);
_sliderTag += 1;
NSLog(@"ADD NEW %i",_sliderTag);
}
Run Code Online (Sandbox Code Playgroud)
_sliderTag已经是NSInteger:
@property (nonatomic,assign) NSInteger* sliderTag;
Run Code Online (Sandbox Code Playgroud)
第一次NSLog打印0和第二次打印后执行打印4.谁有人解释为什么?它是打印0第一个,因为此变量的点是设置标签的计数器.
听起来像是_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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
615 次 |
| 最近记录: |