我刚刚下载了Xcode6-beta6。我收到编译错误"模糊地使用运算符'>'"以下代码
reversed = sorted(names, { s1, s2 in s1 > s2 } )
之前在Xcode6-beta5中工作。
有什么想法吗?
答案 0 :(得分:5)
我也有同样的问题
if ("aa" > "bb") { [...] }
和
反转=排序(名称,{$ 0> $ 1})
显然XCode无法正确推断出正确的类型" String"对于参数,从而在操作员上产生歧义。我的解决方案是显式地声明类型中的至少一个,这也使代码更具可读性。喜欢在:
if ("aa" as String > "bb") { [...] }
revers = sorted(names,{$ 0 as String> $ 1})
答案 1 :(得分:2)
这似乎是基金会框架的桥梁中的一个错误。它声明了>
的覆盖,以便将String
与NSString
和 NSString
和String
进行比较,但这些会出现(在某些情况下)匹配中的冲突。您可以通过改变语法来解决它(出于某种原因):
reversed = sorted(names, { s1, s2 in return s1 > s2 } )