3张图片之间的比较

时间:2014-10-20 06:50:17

标签: c xcode comparison

我想在3个不同的按钮上比较3个图像,Xcode允许我一次比较2个图像但是当我为3编写代码时它会发出警告 "指针和整数之间的比较"

-(void)compare
{
if (b1.currentImage==b2.currentImage==b3.currentImage)
{


    b1.enabled=NO;
    b2.enabled=NO;
    b3.enabled=NO;
    NSLog(@"%@",b1.currentImage);
    NSLog(@"%@",b2.currentImage);
}

else
{
    UIImage *btnImage = [UIImage imageNamed:@"card.png"];
    [b1 setImage:btnImage forState:UIControlStateNormal];

  }

}

1 个答案:

答案 0 :(得分:0)

写作时通常会说:

a == b == c

实际归结为

(a == b) == c

因此,您将ab(无论a和b的类型是bool类型)的比较结果与c进行比较,无论是什么类型c是。

因此,在您的情况下,您将b1.currentImage==b2.currentImage(类型为int)与b3.currentImage进行比较,这是指针类型。

如果你想比较三个值是否相等,你必须写:

(a == b) && (a == c)代替a == b == c

尝试这个小程序并观看打印出来的内容:

int main()
{
  int a = 2, b = 2 , c = 2 ;

  if ((a == b) && (a == c ))
  {
    printf ("(a == b) && (a == c ) is true") ;
  }

  if ((a == b == c))
  {
    printf ("(a == b == c) is true") ;
  }

  return 0 ;
}

它会打印

(a == b) && (a == c ) is true

因为(a == b == c)被评估为

1.  (a == b) == c
2.  (2 == 2) == 2
3.  1 == 2
4.  false