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;
}

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...