swift的新手,只是想抓住一些数据。
所以这是我使用的快捷代码
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)
}
我正在
无法调用非函数类型'[[String:String]]'
的值
我到底想要做什么? 所以我有这个plist file,我希望允许用户在其中搜索,我通过上面的代码通过按钮操作执行此操作,因此如果用户编写修道院,它将获得 kurdi 意思,
答案 0 :(得分:1)
发生错误是因为您使用了错误的语法。
dataArray
不是函数,你可能意味着
dataArray.value(forKey: "Key")
然而,使用像value(forKey
这样的KVC方法只有在您知道KVC是什么以及为什么需要KVC时才有用。在这种情况下,这是不合适的。
dataArray
- 顾名思义 - 是一个由索引下标的数组,因此您可以获取第一项的键english
的值,其中< / p>
dataArray[0]["english"]
是
的同义词dataArray[0].object(forKey:"english")
或者,如果您想查找特定密钥的项目
dataArray.first(where: { $0["english"] == "abbey"})