我正在尝试为我的CGPoints做一个if-else语句 我怎么能这样做,我尝试了这段代码......
if (point1 != point2)
{
//statement
}
我有这个错误
Invalid operand for binary expression...
谢谢!
答案 0 :(得分:42)
尝试使用函数CGPointEqualToPoint
代替。
if (!CGPointEqualToPoint(p1,p2))
{
//statement
}
答案 1 :(得分:8)
你可以这样做:
if (!CGPointEqualToPoint(point1, point2)) {
....
}
浮动(因此CGFloats)有点棘手,因为有时候你希望它们被认为是平等的,但它们只是微不足道的。如果你想进行“模糊”比较,你可以做类似的事情:
if (fabsf(point1.x - point2.x) > 0.0001f || fabsf(point1.y - point2.y) > 0.0001f) {
...
}
这检查x& point1和point2的y分量相差大于0.0001(完全任意数字,根据您所需的精度,可以是您想要的任何数字)。
答案 2 :(得分:7)
我建议使用以下功能:(来自Apple Docs)
CGPointEqualToPoint :返回两个点是否相等。
bool CGPointEqualToPoint (CGPoint point1, CGPoint point2);
参数
第1点:要研究的第一点。
第2点:第二点要研究。
返回值如果两个指定的点是,则返回true 相同;否则,错误。
有关详细信息,请参阅此处:CGGeometry Reference
答案 3 :(得分:5)
参见 CGPointEqualToPoint:返回两点是否相等。
bool CGPointEqualToPoint (
CGPoint point1,
CGPoint point2
);
<强>参数强>
返回值
如果两个指定的点相同,则为true;否则,错误。