【问题标题】:Swift reading from plist file从 plist 文件中快速读取
【发布时间】:2015-04-13 08:13:36
【问题描述】:

我现在正在努力学习 Swift。我正在尝试创建一个属性列表,其中包含游戏元素定位的模式。我的房产清单如下图所示:

我需要执行以下操作:我想随机访问其中一个模式,例如 0 或 4。当我访问它时,我想遍历项目并读取每个 x 位置。

到目前为止,我有以下代码:

// Load the plist
let blocksPlist = NSBundle.mainBundle().pathForResource("Blocks01", ofType: "plist")
let blocksData = NSDictionary(contentsOfFile: blocksPlist!)!
let platformPatterns = blocksData["Patterns"] as! NSDictionary

我试图寻找有关如何继续以及如何读取 x 值的各种教程,但我找不到任何我可以(成功)实施到我的情况的东西。所以基本上,我的问题是:我如何访问其中一个模式,然后,我如何循环遍历它,同时在每次迭代时读取 x 值?

【问题讨论】:

  • 您的 plist 看起来过于复杂。模式可能只是一个数组,而不是字典。同样,Patterns 中的每个项目似乎也可能只是一个数组,或者您打算添加更多的值而不仅仅是“x”?
  • 是的,稍后我可能会添加更多值,例如块的类型,甚至可能是 y 坐标。所以我认为我应该从字典开始

标签: ios swift plist


【解决方案1】:

您确实应该简化您的 plist,但是:

获取随机数组
var randomPattern = platformPatterns[arc4random_uniform(platformPatterns.count())] as! Dictionary

从数组中获取所有元素并读取

for item:Dictionary in randomPattern {
    println(item[x] as! String)
}

【讨论】:

  • 感谢您的回答!你介意给我一些关于如何简化它的提示吗?
  • 另外,我收到一个错误:“AnyObject”不能转换为字典 。这是针对 arc 4 随机线的。知道为什么吗?
  • 你需要手动转换它,这很烦人,基本上对于我们经过的每个对象,你都需要将它转换为特定的类。你放了!字典?
  • 另外,root 可以是一个数组,其中包含您随机选择的条目。在这些条目中,有一个数组数组,第一个数组保存项目,嵌套数组保存 x 和 y 值。
猜你喜欢
  • 1970-01-01
  • 2018-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-04
相关资源
最近更新 更多