You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift 3技术问题:如何访问Plist中legs数组的title字段值

访问Plist中legs数组的title值解决方案

嘿,我来帮你搞定这个问题!你已经能成功获取abs相关的字典值了,要拿到legs数组里的title其实只需要在现有逻辑上稍作调整,咱们一步步来:

首先,我注意到你用了强制解包(!),这其实容易导致崩溃,所以我会用可选绑定来做安全的类型转换和值获取,让代码更健壮。

情况1:legs数组直接在levels字典下

如果你的Plist结构是levels字典里直接有一个legs键,对应的值是数组(数组元素是包含title的字典),那可以用这段代码:

let path = Bundle.main.path(forResource:"Exercise", ofType: "plist")
// 安全加载Plist并转换为Swift字典
guard let dict = NSDictionary(contentsOfFile: path!) as? [String: Any] else {
    print("加载Plist失败或者格式不正确")
    return
}

// 获取levels字典
guard let levelDict = dict["levels"] as? [String: Any] else {
    print("Plist中未找到levels字典")
    return
}

// 取出legs数组,确保它是字典数组类型
guard let legsArray = levelDict["legs"] as? [[String: Any]] else {
    print("未找到legs数组或者数组格式错误")
    return
}

// 遍历数组,提取每个条目的title值
for legExercise in legsArray {
    if let title = legExercise["title"] as? String {
        print("腿部训练标题:\(title)")
    } else {
        print("当前训练条目没有title或者title不是字符串类型")
    }
}

情况2:legs数组在levels下的某个子字典里(比如你代码里的something)

如果你的legs数组是嵌套在levels字典中something这个键对应的子字典里,那调整一下逻辑即可:

let path = Bundle.main.path(forResource:"Exercise", ofType: "plist")
guard let dict = NSDictionary(contentsOfFile: path!) as? [String: Any] else {
    print("加载Plist失败或者格式不正确")
    return
}

guard let levelDict = dict["levels"] as? [String: Any] else {
    print("Plist中未找到levels字典")
    return
}

// 先找到something对应的子字典
guard let somethingDict = levelDict["something"] as? [String: Any] else {
    print("未找到something对应的字典")
    return
}

// 从somethingDict中取出legs数组
guard let legsArray = somethingDict["legs"] as? [[String: Any]] else {
    print("something字典中未找到legs数组")
    return
}

// 遍历获取title
for legExercise in legsArray {
    if let title = legExercise["title"] as? String {
        print("腿部训练标题:\(title)")
    }
}

一些小提示

  • 尽量避免使用强制解包(!),一旦Plist结构有变动或者文件加载失败,强制解包会导致App崩溃,用guard let或者if let做安全检查更稳妥。
  • 确认你的Plist结构和代码里的键名完全匹配(大小写敏感!),比如legs和title的拼写不能错。

内容的提问来源于stack exchange,提问作者IMan Merzaie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:34:15