我正在尝试为我的CGPoints编写if-else语句,我应该如何实现?我尝试了这段代码...
if (point1 != point2)
{
//statement
}
我遇到了这个错误
Invalid operand for binary expression...
谢谢!
我正在尝试为我的CGPoints编写if-else语句,我应该如何实现?我尝试了这段代码...
if (point1 != point2)
{
//statement
}
我遇到了这个错误
Invalid operand for binary expression...
谢谢!
尝试使用函数CGPointEqualToPoint
代替。
if (!CGPointEqualToPoint(p1,p2))
{
//statement
}
以下是您可以做的事情:
if (!CGPointEqualToPoint(point1, point2)) {
....
}
浮点数(因此CGFloat)有些棘手,因为有时您希望它们被视为相等,但它们可能存在微小的差距。如果您想进行“模糊”比较,可以尝试以下方法:
if (fabsf(point1.x - point2.x) > 0.0001f || fabsf(point1.y - point2.y) > 0.0001f) {
...
}
这个检查函数用于判断点point1和point2的x和y坐标分量是否不同,判断标准是它们之间的差值是否大于0.0001(这个数值完全是主观的,可以根据你所需的精度进行调整)。
bool CGPointEqualToPoint (CGPoint point1, CGPoint point2);
参数
point1 : 要检查的第一个点。
point2 : 要检查的第二个点。
返回值 如果两个指定的点相同,则为 true;否则为 false。
更多信息请参阅: CGGeometry 参考文献
参见CGPointEqualToPoint:方法:判断两个点是否相等。
bool CGPointEqualToPoint (
CGPoint point1,
CGPoint point2
);
参数
返回值
如果两个指定的点相同,则返回true;否则返回false。