【问题标题】:Swift 3 - How to access a property listSwift 3 - 如何访问属性列表
【发布时间】:2017-02-25 23:28:13
【问题描述】:

这是来自我创建的属性列表:

我只想将国家/地区名称加载到数组中。这是我到目前为止的代码......

if let path = Bundle.main.path(forResource: "flagData", ofType: "plist") {
    dict = NSMutableDictionary(contentsOfFile: path)

    let currentGroup = (dict!["caribbean"] as AnyObject).allKeys as? [String]
}

但这不起作用 - 当我运行它时,currentGroup = nil

我也试过了:

let currentGroup = dict?.allKeys(for: "caribbean")  

但这给了我一个空数组。

任何想法将不胜感激...谢谢!

【问题讨论】:

  • dict 本身呢。那是 nil 还是实际上包含数据?
  • 如果dict 不是nil,请记录dict.allKeys。是否包含密钥"caribbean"
  • dict 包含数据并且 dict.allKeys 包含“caribbean”

标签: ios dictionary properties swift3 plist


【解决方案1】:
        if let path = Bundle.main.path(forResource: "flagData", ofType: "plist"),
            let configurations = NSDictionary(contentsOfFile: path) {
                variables = configurations[currentConfiguration] as! NSDictionary
        }

尝试上面的代码并进行相关更改,我认为您的代码中的错误是在您投射失败时发生的。

【讨论】:

  • 演员阵容正是问题所在!我尝试了我认为涵盖所有基础的 AnyObject 和 [String:AnyObject],但显然不是。谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
  • 2020-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多