我想在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];
}
}
答案 0 :(得分:0)
写作时通常会说:
a == b == c
实际归结为
(a == b) == c
因此,您将a
和b
(无论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