Swift 3:键值的数组值

时间:2017-08-16 18:06:20

标签: ios swift

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 意思,

1 个答案:

答案 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"})