【问题标题】:do something when counter = x当 counter = x 时做某事
【发布时间】:2011-05-06 18:17:24
【问题描述】:

我有一个计数器,每次一个图像接触另一个图像时都会生成counter++

现在我想做的是:if counter=2; do something,但总是报错:

赋值使指针从整数不进行强制转换

下面是部分代码:

-(void)checkcollision {
    if(CGRectIntersectsRect(flakeImage.frame, viewToRotate.frame)) {
       counter++;
    }
}

-(void)checknumber {
    if(counter=2) {
        viewToRotate.alpha=0;
    }
}

【问题讨论】:

  • 在这种情况下,计数器也被错误地声明。将其设为 int 而不是指针。
  • 我必须把 int 计数器放在哪里;请?

标签: iphone objective-c animation if-statement counter


【解决方案1】:

您是否正在这样做:

if (counter = 2) {
    // Do something.
}

这是if 语句中的常见错误。更正是:

if (counter == 2) {    // Note the "==", instead of "="
    // Do something.
}

这只是一个猜测 - 我需要查看有关错误或您想要做什么的更多信息。

编辑

啊 - 看到你新发布的代码,证实了我上面所说的。您的代码显示您正尝试在 if 语句中将值“2”分配给 counter。您希望 == 对此进行检查是否相等。

【讨论】:

  • 这家伙的水晶球着火了!对一个坏问题的好答案。
  • 是的,但是当我这样做时,xcode 会告诉我同一行:指针和整数之间的比较
  • 这就是为什么你要倒着写条件。 if (2 == 计数器);如果您省略其中一个等号,编译器会发现您的错误。
  • @Arvin:指针/整数比较错误意味着您已将counter 定义为某种id 类型。找到您初始化计数器的行,并确保您没有使用带有变量名的*。它应该类似于:NSInteger counter;NOTNSInteger *counter;。我不知道你的 counter 变量到底是什么类型,但如果它类似于 intNSInteger,你需要知道这些不是指向对象的指针。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-27
相关资源
最近更新 更多