2017-08-30 98 views
0

有問題的代碼有一點來自於此answer,並檢查給定的索引是否可用。XCode 8無法編譯適用於Xcode 9的Swift 3代碼

具體來說,只有在XCode 8.3下面的問題出現了(代碼在XCode 9 beta中編譯得很好,這段代碼也是明確的Swift 3,而不是4)。

enter image description here

我看着有關「缺少的參數」的錯誤問題,而通常的做法是確保包括可選的參數。但是,在這裏全部3個包括optionali,這是類型Index

我在這裏的語法做錯了什麼?

回答

1

的語法改爲這樣:

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

+0

完美。謝謝你。 – daspianist

相關問題