我在CGPoint
课程中声明了UIView
,在我的viewController
我尝试检查CGPoint
是否不等于CGPointZero
,但是我收到此错误:Invalid operands to binary expression ('CGPoint' (aka 'struct CGPoint') and 'CGPoint')
这是if语句:
if (joystick.velocity != CGPointZero)
错误指向!=我不知道为什么它会给我一个错误。
joystick
是UIView
类,CGPoint velocity
声明如下:
@property(nonatomic) CGPoint velocity;
答案 0 :(得分:16)
试试这个:
if (!CGPointEqualToPoint(joystick.velocity, CGPointZero))
说明:CGPoint实际上是一个结构。二进制操作数(“==”或“!=”)它仅用于比较原始值,通常用于比较指针,实际上它们是表示内存位置的整数。
由于你有一个结构,而不是某个东西的引用,你必须比较你的结构中的每个值,但幸运的是,在CGPoint的情况下,苹果已经实现了一个为你执行此操作的宏。
如果您感到好奇,可以命令点击上面的宏并查看实施:
__CGPointEqualToPoint(CGPoint point1, CGPoint point2)
{
return point1.x == point2.x && point1.y == point2.y;
}