XCode 8无法编译适用于Xcode 9的Swift 3代码
问题描述:
有问题的代码有一点来自于此answer,并检查给定的索引是否可用。XCode 8无法编译适用于Xcode 9的Swift 3代码
具体来说,只有在XCode 8.3下面的问题出现了(代码在XCode 9 beta中编译得很好,这段代码也是明确的Swift 3,而不是4)。
我看着有关“缺少的参数”的错误问题,而通常的做法是确保包括可选的参数。但是,在这里全部3个包括optional
i
,这是类型Index
。
我在这里的语法做错了什么?
答
的语法改为这样:
public func contains(where predicate: (Element) throws -> Bool) rethrows -> Bool
现在,你应该使用这一个
self.indices.contains(where: { (object) -> Bool in
//make comparison here
})
或者
self.indices.contains(where: {$0 == "equal to something"})
或者你可以用这样的:
if self.indices.first(where: {$0 == "equal something"}) != nil {
return self[i]
}else{
return nil
}
顺便说一句,集合在调用“contains”后仍然有返回的bool值。 Check this
完美。谢谢你。 – daspianist