[英]In Objective-C, why does this increment by 4 instead of 1?
在Objective-C中,我有一个简单的代码块,每次按下按钮时都会递增一个计数器。 我的日志,甚至是界面的更新,都显示增量为4而不是1。 这只是我格式化的显示问题(我正在使用%d)或其他我错过的东西? 我的猜测在于“%d”,但我是Objective-C的新手,并不确定。 (注意,我也试过“counter + = 1;”,结果相同。
int counterValue = 0;
NSLog(@"Count at init: %d",counterValue);
...
-(IBAction)pushButton {
NSLog(@"Count (Pre-Push) = %d",counterValue);
counterValue++;
NSLog(@"Count (Post-Push) = %d",counterValue);
}
输出如下:
2010-02-20 18:39:39.125 My App[37536:207] Count at init: 0
2010-02-20 18:39:39.845 My App[37536:207] Count (Pre-Push) = 0
2010-02-20 18:39:39.846 My App[37536:207] Count (Post-Push) = 4
2010-02-20 18:39:40.165 My App[37536:207] Count (Pre-Push) = 4
2010-02-20 18:39:40.166 My App[37536:207] Count (Post-Push) = 8
2010-02-20 18:39:40.727 My App[37536:207] Count (Pre-Push) = 8
2010-02-20 18:39:40.728 My App[37536:207] Count (Post-Push) = 12
您显示的代码不应该这样做。 我做了快速程序来双重检查,我得到了预期的结果:
2010-02-22 17:04:35.787 app[68267:a0f] Count (Pre-Push) = 0
2010-02-22 17:04:35.790 app[68267:a0f] Count (Post-Push) = 1
2010-02-22 17:04:35.923 app[68267:a0f] Count (Pre-Push) = 1
2010-02-22 17:04:35.924 app[68267:a0f] Count (Post-Push) = 2
我最好的猜测是你用另一个类型为int *
变量对counterValue
进行了阴影,它使用sizeof(int)
而不是1来增加+
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.