2017-08-16 35 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

印所有人都没有工作,但感谢的人 –