在 Swift 中使用数组创建 TableView
Posted
技术标签:
【中文标题】在 Swift 中使用数组创建 TableView【英文标题】:Creating TableViews in Swift with an Array 【发布时间】:2015-06-18 13:25:28 【问题描述】:我正在尝试使用一次 Rest 调用的结果作为我的 TableView 的输入。 我有一个名为 GamesList[String] 的数组,它是在 viewDidLoad() 函数中合成的。这是 viewDidLoad() 函数:
override func viewDidLoad()
super.viewDidLoad()
getState() (json, error) -> Void in
if let er = error
println("\(er)")
else
var json = JSON(json!);
print(json);
let count: Int = json["games"].array!.count
println("found \(count) challenges")
for index in 0...count-1
println(index);
self.GamesList.append(json["games"][index]["game_guid"].string!);
问题是填充 TableView 的函数在我的 GamesList 数组被填充之前执行。这些是填充 TableView 的函数:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return GamesList.count
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
var cell = tableView.dequeueReusableCellWithIdentifier("Game", forIndexPath: indexPath) as! UITableViewCell
cell.textLabel?.text = GamesList[indexPath.row]
cell.detailTextLabel?.text = GamesList[indexPath.row]
return cell
如何在我的数组被填满后强制表格被填满(刷新)?
【问题讨论】:
【参考方案1】:在附加值后使用self.tableView.reloadData()
getState() (json, error) -> Void in
if let er = error
println("\(er)")
else
var json = JSON(json!);
print(json);
let count: Int = json["games"].array!.count
println("found \(count) challenges")
for index in 0...count-1
println(index);
self.GamesList.append(json["games"][index]["game_guid"].string!);
dispatch_async(dispatch_get_main_queue())
self.tableView.reloadData()
【讨论】:
感谢您的回答,但它没有编译。它告诉我它“不能在没有参数的情况下调用'reloadData''我应该传递什么参数? 你的 tableView 实例名称是什么? 我通过 Storyboard 模式创建了 TableView。它连接到插座:数据源。编辑后我收到错误消息:'Cannot invoke 'dispatch_async' with an argument list of type '(dispatch_queue_tl, ()->_)'以上是关于在 Swift 中使用数组创建 TableView的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 中的数组中使用多个部分和多个字典填充 TableView
我如何使用解码器在swift 4中解析tableview中的json数组
在 iOS Swift 中没有正确加载 Tableview 数组?