从plist获取值到我的tableView Dictionaries和Arrays

时间:2015-03-08 15:54:01

标签: ios iphone swift plist

我正在尝试将词典键值添加到我的 TableView 中。数据源是 plist

plist的设置如下:不幸的是,我无法发布图片。

Root = Array
 Item 0 = Dictionary
  modelName = "SomeName"
  modelType = "SomeType"
 Item 1 = Dictionary (similar key : values)
 Item 2 = Dictionary 
 Item 3 = Dictionary 

所以它基本上是一个字典数组。我想迭代数组并使用" modelName"我的TableView标签中的值。

当我使用println

时,我可以获取要打印的单个Array对象
if let path = NSBundle.mainBundle().pathForResource("models", ofType:    "plist") {
        if let array = NSArray(contentsOfFile: path) {
        self.tableData = array
        println(self.tableData[0])
        }
    }

但我想转换我的数据并调用特定的键值以在我的 tableView 中使用。我试图为我的plist中的每个项目创建一个Dictionary

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as DataSheetTableViewCell

   var dict = NSDictionary(objectsAndKeys: self.tableData[indexPath.row])
    cell.titleLabel.text = dict["modelName"] as? String

    return cell
}

我对如何创建我的plist Dictionary感到有点困惑。谢谢。

1 个答案:

答案 0 :(得分:0)

如果你的plist是一个字典数组,那么单个字典只是你使用objectAtIndex得到的数组元素之一:(或者它使用下标语法等效)。你只需要将它转换为字典,而不是创建一个新的字典,这是dictionaryWithObjectsAndKeys所做的。

var dict = self.tableData [indexPath.row] as NSDictionary