3幅图像之间的比较

标签 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];

  }

}

最佳答案

写作时通常会说:

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

关于3幅图像之间的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26459921/

相关文章:

c - 访问存储在链表中的结构的属性

c - 从指针访问结构

c - Posix 与 System V 中基于共享内存的管道之间的区别?

javascript - JavaScript 中特殊字符的 localCompare 和比较运算符之间的不同结果

reactjs - React Native es5 与 es6 解释请求

c - C中的默认函数参数

ios - 寻找Xcode构建脚本以在目标之间复制文件

ios - NSUserDefaults 和 alertView

objective-c - 添加一个大的静态库作为 cocoapod 或直接将所有目标文件添加到生成的二进制文件中,因为 -ObjC 链接器标志

python - 比较因子变量每个级别的数据帧的两个连续行的值 - Python Pandas