我有一个CGPoint在UIView类中声明,在我的viewController中,我尝试检查CGPoint是否不等于CGPointZero,但是我收到这个错误:二进制表达式(‘CGPoint'(又名’struct CGPoint’)’和’ CGPoint“)
这是if语句:
if (joystick.velocity != CGPointZero)
操纵杆是UIView类,CGPoint速度是这样声明的:
@property(非原子)CGPoint速度;
解决方法
尝试这个:
if (!CGPointEqualToPoint(joystick.velocity,CGPointZero))
说明:CGPoint实际上是一个结构体.二进制操作数(“==”或“!=”)只用于比较原始值,通常用于比较指针,实际上它是表示内存位置的整数.
当你有一个结构体,而不是某个东西的引用,你将不得不比较你的结构体内的每个值,但幸运的是,苹果已经实现了一个在CGPoint的情况下为你执行的宏.
如果您好奇,可以通过命令单击上面的宏,并查看实现:
__CGPointEqualToPoint(CGPoint point1,CGPoint point2) { return point1.x == point2.x && point1.y == point2.y; }