我不想做的例子:
var b = 0
let URL: NSURL = NSURL(string: "[URL to php file]")!
let request:NSMutableURLRequest = NSMutableURLRequest(URL: URL)
request.HTTPMethod = "POST"
request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue())
{
(response, data, error) in
b = 5
}
func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
return b //Return 0
}我知道在numberOfRowsInSection中,它返回0,因为sendAsynchronousRequest执行之后,但是有什么方法使numberOfRowsInSection函数在sendAsynchronousRequest之后执行吗?还是有更好的方法使我的变量在numberOfRowsInSection函数之前等于5?
发布于 2014-11-15 20:59:22
您不想延迟numberOfRows...调用,但是一旦在异步请求中接收到数据,就可以调用tableView.reloadData:
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue())
{
(response, data, error) in
b = 5
self.tableView.reloadData()
}这将使表视图重新配置自身并再次调用numberOfRows...。
https://stackoverflow.com/questions/26950515
复制相似问题