1
我遇到過這個問題(並感謝操場我能找到它)爲什麼具有函數的swift字典在類的外部工作而在類內部產生錯誤?
我嘗試使用一個字典,它的數字作爲鍵和函數的值。一切正常的一類精細外:
private func hello1(x: Double) {
println("hello1")
}
private func hello2(x: Double) {
println("hello2")
}
private let contacts: [Int: Double ->()] = [
0 : hello1,
1 : hello2
]
contacts[1]?(1.0) // Works fine :-)
當我把相同的代碼的類中,我得到一個編譯錯誤
亞型「雙」不是「SomeClass的」
用同一代碼:
internal class SomeClass {
private func hello1(x: Double) {
println("hello1")
}
private func hello2(x: Double) {
println("hello2")
}
private let contacts: [Int: Double ->()] = [ // *** Here I get the error ***
0 : hello1,
1 : hello2
]
internal func runIt() {
contacts[1]?(1.0)
}
}
let someClass = SomeClass()
someClass.runIt()
我試過bracke的幾種方法TS。沒有改進。
學習Swift時我錯過了什麼?我誤解或曲解了什麼?
男人,你讓我的一天!我在SpriteKit遊戲中使用這段代碼來保持'didBeganContact()'儘可能通用。 – jboi 2014-11-01 14:31:00
請看我更新的答案。 – rintaro 2014-11-01 16:01:11