Ios 二进制运算符'<';无法应用于类型为';CGPoint';和';Int';使用防护装置

Ios 二进制运算符'<';无法应用于类型为';CGPoint';和';Int';使用防护装置,ios,swift,Ios,Swift,在我的比赛中,我有一个可以被击的球。我试着这样做,如果用户不能将球拖动到某个点以上。但是,如果他们侧击并意外进入该点,那么球仍然会移动。每当我放置保护位置

在我的比赛中,我有一个可以被击的球。我试着这样做,如果用户不能将球拖动到某个点以上。但是,如果他们侧击并意外进入该点,那么球仍然会移动。每当我放置
保护位置<100 else{return}
时,错误:


“二进制运算符”错误告诉您错误所在。
CGPoint
是具有
x
y
值的结构。将点与单个整数值进行比较是没有意义的

您需要将点x或y位置与某个值进行比较,而不是与整个点进行比较

    guard location < 100 else { return }
guard location<100 else{return}
可能会读到

    guard location.y < 100 else { return }
guard location.y<100 else{return}

相反。

错误是告诉您出了什么问题。
CGPoint
是具有
x
y
值的结构。将点与单个整数值进行比较是没有意义的

您需要将点x或y位置与某个值进行比较,而不是与整个点进行比较

    guard location < 100 else { return }
guard location<100 else{return}
可能会读到

    guard location.y < 100 else { return }
guard location.y<100 else{return}

相反。

使用CGFloat或尝试使用100.0我已经尝试过了,但是当我使用CGFloat时,它说会出现相同的错误,当我使用100.0时,它说我使用双重投射没有任何意义。你不能将CGPoint投射到一个简单的标量上,比如
双重
CGFloat
。请看我的答案。哎呀,我把CGPoint误读为CGFloat,my badcast in到CGFloat或尝试使用100.0我已经尝试过了,但是当我使用CGFloat时,它说会出现相同的错误,当我使用100.0时,它说我使用双重投射是没有意义的。你不能将CGPoint投射到一个简单的标量,比如
Double
CGFloat
。请看我的答案。哎呀,我把CGPoint误读为CGFloat,我的badDuncan、 我已经让程序运行了,但防护装置根本不起作用。我的代码设置正确吗?编辑你的问题,在文章末尾显示更新的代码。同时显示包含防护装置语句的整个函数。你需要告诉我们你希望发生什么。如果位置n的x或y位置大于或等于100?@LeoDabus,你可以在循环内返回。它退出循环并从函数返回。试试看。它是有效的。你也可以这样做,但效果不是你期望的。在forEach的情况下,返回从闭包中返回,因此它的效果与在for…In中继续相同loop.Duncan,我已经让程序运行了,但是防护装置根本不起作用。我的代码设置是否正确,可以按照我上面说的做?编辑你的问题,在文章的末尾显示更新的代码。同时显示包含防护语句的整个函数。你需要告诉我们你希望发生什么。如果位置的x或y位置大于或等于100?@LeoDabus,您可以在循环中返回。它退出循环并从函数中返回。试试看。它是有效的。您也可以这样做,但效果不是您期望的。对于forEach,返回从闭包中返回,因此其效果与在中继续相同循环中的一个循环。