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

相关文章

背景 前端时间产品经理决定使用百度统计,使得 工程B 中原统计sdk-友盟统计,需要被去除。之前尝试去除...
结论: alloc负责分配内存和创建对象对应的isa指针; init只是返回alloc生成的对象。 所以alloc后,多次...
更新 如果UI愿意把启动图切割成n份,按一定约束在launchscreen.storyboard中进行排版,启动图效果会更好...
最近在看一本书《Effective OC 2.0》,今天看到有个tip是OC适中循环各自优劣性,作者最终推荐此块循环。...
// // ViewController.m // paintCodeTestOC //gif // Created by LongMa on 2019/7/25. // #import &a...
背景介绍 一般情况下,出于省电、权限、合理性等因素考虑,给人的感觉是很多奇怪的需求安卓可以实现,但...