2017-08-29 56 views
-2
class Model: NSObject { 
    var numbers : Array<Int> = [] 
} 

internal func test() { 
    let model : Model = Model.init() 
    model.setValue([1,2,3], forKey: "numbers") 
    print(model.numbers) 
} 

test()//[1, 2, 3] 

但是,如果我將上面的var numbers : [Int] = []更改爲var numbers :[Int64] = [],則會崩潰。這是爲什麼?我該如何解決它?Swift中的陣列類型轉換

+2

您可以編輯您的問題!它是不明確的。你怎麼能從「但是如果我改變上述....」開始? – Haz

+0

尋求調試幫助的問題(「爲什麼這個代碼不工作?」)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。沒有明確問題陳述的問題對其他讀者無益。請參閱:如何創建最小,完整和可驗證示例。 –

回答

0

首先在這種情況下不要使用KVC。用點符號使用setter。

其次重要的是,如果你想[Int64]投的類型

class Model: NSObject { 
    var numbers = [Int64]() 
} 

internal func test() { 
    let model = Model() 
    model.numbers = [1,2,3] as [Int64] 
    print(model.numbers) 
} 

test()//[1, 2, 3]