用字典数据填充UITableView(Swift)

时间:2016-03-17 15:15:44

标签: ios json swift uitableview nsdictionary

我正在使用NodeJS后端制作社交网络应用。该应用程序通过GET请求从与Node应用程序关联的MongoDB获取其数据。我已经想出如何解析从GET请求返回的JSON作为本机字典,但无法找到一种干净的方法将字典中的每个对象转换为TableViewCell TableView 1}}。字典基本上是这样的:

["username":"personWhoPosted", "taggedUsername":"personWhoIsTagged", "imageURL":"http://urlofimageposted.com"]

我需要在TableViewCell s

中填写不同的值/标签

1 个答案:

答案 0 :(得分:2)

如果你想利用indexPath,我会保留一组字典键的副本。

func fetchData() {
  // ....
  // Your own method to get the dictionary from json
  let self.userDict = ["username":"personWhoPosted", "taggedUsername":"personWhoIsTagged", "imageURL":"http://urlofimageposted.com"]

  // Keep a copy of dictionary key
  let self.userDictKeyCopy = Array(self.userDict.keys)
  // You may want to sort it
  self.userDictKeyCopy.sort({$0 < $1})
}

// Table view delegates

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  return self.userDictKeyCopy.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
  let cell = tableView.dequeueReusableCellWithIdentifier(kCustomCell) as! CustomTableCell

  // Assuming one section only
  let title = self.userDictKeyCopy[indexPath.row] // e.g. "taggedUsername"

  cell.titleLabel = title
  cell.contentLabel = self.userDict[title] // e.g. "personWhoIsTagged"

  return cell
}