Swift 3 - 通过数组索引访问项目键值

Posted

技术标签:

【中文标题】Swift 3 - 通过数组索引访问项目键值【英文标题】:Swift 3 - Access item key values by array index 【发布时间】:2018-01-27 14:58:39 【问题描述】:

嗨,我正在尝试访问我的 plist 中的腿数组中的项目 我希望能够从此 plist 的腿数组中获取 key = "title" 的值

我已经有了从名为 abs 的字典中获取值的方法,如下代码

let path = Bundle.main.path(forResource:"Exercise", ofType: "plist")

let dict:NSDictionary = NSDictionary(contentsOfFile: path!)!
if (dict.object(forKey: "levels") != nil) 

    if let levelDict:[String : Any] = dict.object(forKey: "levels") as? [String : Any] 

        for (key, value) in levelDict 

            if ( key == "something")                     
                     print(value)
            
        
    

但是我不知道如何访问legs 数组来获取项目标题

【问题讨论】:

dict["legs"] 有用吗? 【参考方案1】:

在到达腿数组时,在您的情况下,该数组的类型为 [[String:String]],具有三个元素,每个索引具有两个键对值。您可以遍历该索引并获取您的值,然后迭代给其他人。

let yourLegsArray:AnyObject = dict.object(forKey: "legs")! as AnyObject

然后遍历yourLegsArray 并获取Dict 的内部值。

【讨论】:

好人,你知道我现在如何在tableview中显示结果吗? func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 内。您可以使用类似 [ cell.textLabel?.text = 要在表格视图单元格中显示的结果文本] 之类的内容。 @IManMerzaie【参考方案2】:

所以我设法找到了我原来问题的答案

    let path = Bundle.main.path(forResource: "Exercise", ofType: "plist")
    let dict = NSDictionary(contentsOfFile: path!)!
    let levelArray:AnyObject = dict.object(forKey: "legs")! as AnyObject

    if let nsArray:NSArray = levelArray as? NSArray

        var levelDict:AnyObject = nsArray[1] as AnyObject //currentLevel is an Int

        //then finally I could get data from a dictionary in the array
        let Title = levelDict["title"] as AnyObject? as! String
        print(Title)

    

所以现在这将打印腿数组中的第二个项目,即“腿 2”

【讨论】:

以上是关于Swift 3 - 通过数组索引访问项目键值的主要内容,如果未能解决你的问题,请参考以下文章

使用无效键值访问的 JArray 值:“字段”。预期数组位置索引

swift 3 将 json 数组解析为键值

swift 使用enumerate()访问数组元素的索引和值

致命错误:在Swift中访问10个元素的数组时,数组索引超出范围

循环遍历数组以获取项目的索引 - swift

PHP之数组函数