【问题标题】:Cocoa touch NSInteger plusing 4 not 1Cocoa touch NSInteger 加 4 不是 1
【发布时间】:2013-04-10 16:12:43
【问题描述】:

我有这个可可触摸代码,你按下一个按钮,一个 NSInteger 用数字 1 添加它自己,然后一个标签变成 NSInteger 值

这是代码

- (IBAction)out:(id)sender {

outnum = outnum + 1;

self.outnumberlabel.text =  [[NSString alloc] initWithFormat: @"%d", outnum];

一切正常,但 NsInteger 在添加 1 时会添加 4

当我放入时

outnum = outnum + 2;

标签变成8

四分五裂有谁知道为什么以及如何解决它

【问题讨论】:

  • out的初始值是多少?
  • out的初始值为0
  • 你确定,这个动作被调用了一次?
  • 是的,我只是用 Nslog 检查那里
  • 不寻常,尝试将方法名称更改为out以外的其他名称

标签: xcode cocoa-touch math nsinteger


【解决方案1】:

检查你的 outnum 声明 - 如果你声明,你会看到这种行为

NSInteger *outnum;

而不是

NSInteger outnum;

【讨论】:

    【解决方案2】:

    听起来您的out: 方法被调用的频率是您预期的四倍。尝试在此代码中添加NSLog 行以确认。如果是这种情况,您需要弄清楚为什么会如此频繁地调用该方法。

    【讨论】:

    • 不,不是这样。我忘了提到当我输入 out = out + 2;它给了我八个而不是四个,就好像它在四次表中上升一样。
    • 不,不是因为我放了一个NSLog,而NSLog只激活了一次
    • 你知道是否可以将 0.25 添加到 NSInteger。
    • 无法将小数值添加到 NSInteger。我建议将变量 out 更改为其他名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多