2017-08-16 71 views
0

新的swift,只是想捕捉一些數據。Swift 3:密鑰的數組值

所以這裏是我用

 let url = Bundle.main.url(forResource: "kurdiebg", withExtension: "plist")! 
    do { 
     let data = try Data(contentsOf: url) 
     let dataArray = try PropertyListSerialization.propertyList(from: data, format: nil) as! [[String:String]] 

     // Bloody Error is this 
     let request = dataArray(value(forKey: "Key")) 

     print(dataArray.count) 
    } catch { 
     print("This error must not happen", error) 

    } 

我得到

不能調用非功能型 '[[字符串:字符串]]' 的價值我的SWIFT代碼

我究竟在做什麼? 所以我有這個plist file,我想允許用戶在其搜索,我通過上面這段代碼的按鈕操作執行這一點,所以如果用戶寫修道院,它會得到庫爾迪意義,

+0

'dataArray.value(forKey: 「鑰匙」)' – rmaddy

+0

嗨rmaddy,嘗試這樣做,它讓我**型的價值 '[[字符串:字符串]' 沒有成員 '價值' ** –

+1

對。這是來自鍵值編碼,存在於'NSArray'上,而不是Swift數組。你有一系列字典。你究竟在試圖擺脫陣列呢? – rmaddy

回答

1

的發生錯誤是因爲您使用錯誤的語法。

dataArray不是一個函數,你可能然而,使用KVC方法一樣,如果你知道KVC是什麼,爲什麼你需要KVC value(forKey是唯一有用的意思

dataArray.value(forKey: "Key") 

。在這種情況下,這是不合適的。


dataArray - 顧名思義 - 是由指數下標數組這樣你可以得到例如用於第一個項目的關鍵english值與

dataArray[0]["english"] 

這是一個的同義詞

dataArray[0].object(forKey:"english") 

或者如果您想查找特定鍵的項目

dataArray.first(where: { $0["english"] == "abbey"}) 
+0

印所有人都沒有工作,但感謝的人 –