【问题标题】:Int ++ is adding 4 instead of 1Int ++ 是加 4 而不是 1
【发布时间】:2011-10-03 18:03:16
【问题描述】:

每次按下按钮时,我都会尝试将值 1 添加到 int,但是当我这样做时,它会添加 4。

-(IBAction)donePressed {


timesPressed ++;

thirdLabel.text = [NSString stringWithFormat:@"Times done: %i", timesPressed];

}

当我这样做时,它会打印出 4,8,12,16 而不是 1,2,3,4

谢谢

【问题讨论】:

  • 你能放一个 NSLog 来确保它只被调用一次吗?另外,你能告诉我们你在哪里声明你的 int 吗?
  • 我会在几秒钟内检查 NSLog,但我所做的只是在 .h int *timesPressed;并且在 .m 次按下 = 0;在 viewDidLoad 中。
  • 显然timesPressed是指针类型!现在,您是如何让编译器不对 printf 格式/参数不兼容发出警告的?我确信您可以打开一些警告,这样就不会再发生这种情况了。

标签: iphone objective-c integer


【解决方案1】:

根据您上面的最后一条评论,timesPressed 定义为int *timesPressed;

这是不正确的,你要定义为int timesPressed;

对指针类型执行+ 会将加法乘以类型的大小,如果您想了解更多信息,请阅读指针和指针算法。

【讨论】:

    【解决方案2】:

    在头文件中,不应该是int *timesPressed。应该是int timesPressed;

    【讨论】:

      【解决方案3】:

      你试过用 %d 代替 %i 吗?

      【讨论】:

      • %d 和 %i 相同,都表示“有符号整数”
      猜你喜欢
      • 1970-01-01
      • 2011-09-07
      • 1970-01-01
      • 2022-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-19
      相关资源
      最近更新 更多