numberOfRowsInSection 在 Alamofire 连接之前被调用
numberOfRowsInSection is called before Alamofire connection
我在viewDidLoad
中通过Alamofire获取数据,然后将其放入answerArray。但是,在 Alamofire 连接之前,调用 numberOfRowsInSection
并且 returns 0。如何先通过 Alamofire 获取数据,然后在 numberOfRowsInSection
处获取 eventArray.count
?
var answerArray = NSMutableArray()
override func viewDidLoad() {
let parameters = [
"id":questionNum
]
Alamofire.request(.POST, "http://localhost:3000/api/v1/questions/question_detail",parameters: parameters, encoding: .JSON)
.responseJSON { (request, response, JSON, error) in
println(JSON!)
// Make models from JSON data
self.answerArray = (JSON!["answers"] as? NSMutableArray)!
}
self.tableView.reloadData()
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return answerArray.count
}
行为正常。 UITableView
委托根据需要调用 numberOfRowsInSection
。
你只需要触发self.tableView.reloadData()
刷新table。
Alamofire.request(.POST, "http://localhost:3000/api/v1/questions/question_detail",parameters: parameters, encoding: .JSON)
.responseJSON { (request, response, JSON, error) in
println(JSON!)
// Make models from JSON data
self.answerArray = (JSON!["answers"] as? NSMutableArray)!
self.tableView.reloadData()
}
我认为更优雅的方法是每次分配给 answerArray
时重新加载 tableView,这样当您从 API.
收到响应时,tableView 就会自动更新
将 self.tableView.reloadData()
移动到 didSet
回调中。
var answerArray = NSMutableArray() {
didSet {
self.tableView.reloadData()
}
}
我在viewDidLoad
中通过Alamofire获取数据,然后将其放入answerArray。但是,在 Alamofire 连接之前,调用 numberOfRowsInSection
并且 returns 0。如何先通过 Alamofire 获取数据,然后在 numberOfRowsInSection
处获取 eventArray.count
?
var answerArray = NSMutableArray()
override func viewDidLoad() {
let parameters = [
"id":questionNum
]
Alamofire.request(.POST, "http://localhost:3000/api/v1/questions/question_detail",parameters: parameters, encoding: .JSON)
.responseJSON { (request, response, JSON, error) in
println(JSON!)
// Make models from JSON data
self.answerArray = (JSON!["answers"] as? NSMutableArray)!
}
self.tableView.reloadData()
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return answerArray.count
}
行为正常。 UITableView
委托根据需要调用 numberOfRowsInSection
。
你只需要触发self.tableView.reloadData()
刷新table。
Alamofire.request(.POST, "http://localhost:3000/api/v1/questions/question_detail",parameters: parameters, encoding: .JSON)
.responseJSON { (request, response, JSON, error) in
println(JSON!)
// Make models from JSON data
self.answerArray = (JSON!["answers"] as? NSMutableArray)!
self.tableView.reloadData()
}
我认为更优雅的方法是每次分配给 answerArray
时重新加载 tableView,这样当您从 API.
将 self.tableView.reloadData()
移动到 didSet
回调中。
var answerArray = NSMutableArray() {
didSet {
self.tableView.reloadData()
}
}