0

我正在尝试使异步。使用 Promisekit 的承诺请求。我在 UITableViewController 的子类中有以下代码,用于使用从异步获取的数据重新加载 tableview。要求。

my_promise.then { asynly_fetched_data in 
  self.data = asyncly_fetched_data
  self.tableView.reloadData()
} 

但是,以下语句 (self.tableView.reloadData()) 导致以下构建错误。

 Missing return in a closure expected to return 'AnyPromise' 

是不是因为我们不能在闭包内调用 reloadData() 。如果是这种情况,在异步请求完成后重新加载 tableview 的最佳做法是什么。

4

1 回答 1

2

这是一个快速的错误。但是您可以通过添加-> Void闭包来修复它:

my_promise.then { asynly_fetched_data -> Void in 
  self.data = asyncly_fetched_data
  self.tableView.reloadData()
} 

这样,Swift 就知道返回是 Void。

于 2015-08-18T11:09:11.880 回答