对斯威夫特来说是个新手,只是想获取一些数据。
这是我使用的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我想允许用户在里面搜索,我用上面的代码通过一个按钮操作来执行,所以如果用户写了abbey,就会得到kurdi的意思,

最佳答案

出现错误是因为您使用了错误的语法。
dataArray不是函数,你可能是说

dataArray.value(forKey: "Key")

但是,只有在知道什么是KVC以及为什么需要KVC时,使用类似于value(forKey的KVC方法才有用。在这种情况下是不合适的。
dataArray–顾名思义–是一个由索引订阅的数组,因此您可以使用
dataArray[0]["english"]

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

或者如果你想为一个特定的键找到一个项
dataArray.first(where: { $0["english"] == "abbey"})

关于ios - Swift 3:键的数组值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45720313/

10-10 09:02