我在 CGPoint 类中声明了一个 UIView,在我的 viewController 中,我尝试检查 CGPoint 是否不等于 0x22313131231231131312312313131312311313131313113113113113123131141

这是 if 语句:

if (joystick.velocity != CGPointZero)

错误指向 !=,我不知道为什么它会给我一个错误。
CGPointZeroInvalid operands to binary expression ('CGPoint' (aka 'struct CGPoint') and 'CGPoint') 类,joystick 是这样声明的:
UIView

最佳答案

试试这个:

if (!CGPointEqualToPoint(joystick.velocity, CGPointZero))

解释: CGPoint 实际上是一个结构体。二元操作数(“==”或“!=”)仅用于比较原始值,通常用于比较指针,指针实际上是表示内存位置的整数。

由于您有一个结构体,而不是对某物的引用,因此您必须比较结构体中的每个值,但幸运的是,苹果已经实现了一个宏,可以在 CGPoint 的情况下为您执行此操作。

如果你好奇,你可以命令单击上面的宏并查看实现:
__CGPointEqualToPoint(CGPoint point1, CGPoint point2)
{
  return point1.x == point2.x && point1.y == point2.y;
}

关于ios - 无法检查 CGPoint 是否不等于 CGPointZero,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18001045/

10-13 21:44