ios – 不能检查CGPoint是否不等于CGPointZero

前端之家收集整理的这篇文章主要介绍了ios – 不能检查CGPoint是否不等于CGPointZero前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个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;
}

猜你在找的iOS相关文章