iphone – 在Objective-C中,为什么增加4而不是1?

iphone – 在Objective-C中,为什么增加4而不是1?,第1张

概述在Objective-C中,我有一个简单的代码块,每次按下一个按钮时都会增加一个计数器。我的日志,甚至更新界面,显示增加4而不是一个。这是否只是我的格式化显示问题(我正在使用%d)或其他我错过的东西?我的猜测在于“%d”,但我对Objective-C很新,不确定。 (注意,我也尝试了“counter = 1;”,结果相同。 int counterValue = 0;NSLog(@"Count a 在Objective-C中,我有一个简单的代码块,每次按下一个按钮时都会增加一个计数器。我的日志,甚至更新界面,显示增加4而不是一个。这是否只是我的格式化显示问题(我正在使用%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:  02010-02-20 18:39:39.845 My App[37536:207] Count (Pre-Push) = 02010-02-20 18:39:39.846 My App[37536:207] Count (Post-Push) = 42010-02-20 18:39:40.165 My App[37536:207] Count (Pre-Push) = 42010-02-20 18:39:40.166 My App[37536:207] Count (Post-Push) = 82010-02-20 18:39:40.727 My App[37536:207] Count (Pre-Push) = 82010-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) = 02010-02-22 17:04:35.790 app[68267:a0f] Count (Post-Push) = 12010-02-22 17:04:35.923 app[68267:a0f] Count (Pre-Push) = 12010-02-22 17:04:35.924 app[68267:a0f] Count (Post-Push) = 2

我最好的猜测是你已经用另一个类型为int *的变量来反映了counterValue,它是通过sizeof(int)而不是1来增加的。

总结

以上是内存溢出为你收集整理的iphone – 在Objective-C中,为什么增加4而不是1?全部内容,希望文章能够帮你解决iphone – 在Objective-C中,为什么增加4而不是1?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1073171.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存