我在单独的类中发出 http GET 请求,并在 UITableViewCell 的子类中调用它 我想要的是在请求后在按钮标题上显示数组对象的计数,但它显示 0
这是我的代码:
class ReportAnIssue: UITableViewCell {
var issuesArray = [Issue]()
var openedIssuesArray = [Issue]()
var closedIssuesArray = [Issue]()
@IBOutlet weak var openedIssuesButton: UIButton!
@IBOutlet weak var closedIssuesButton: UIButton!
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
let maker = UserProfileMaker()
maker.request() { issuesArray, openedIssuesArray, closedIssuesArray, success in
self.issuesArray = issuesArray
self.openedIssuesArray = openedIssuesArray
self.closedIssuesArray = closedIssuesArray
// here array.count == 1
self.openedIssuesButton.setTitle("Opened Issues: \(self.openedIssuesArray.count)", forState: .Normal)
//here I'am getting 0 in title, but in fact it should be one
}
}
}
最佳答案
你应该在主队列上调度调用,试试看:
dispatch_async(dispatch_get_main_queue(),{
self.openedIssuesButton.setTitle("Opened Issues: \(self.openedIssuesArray.count)", forState: .Normal)
})
我相信请求是在后台队列中发出的,但所有与 UI 相关的操作都必须在主队列中完成。
关于ios - 请求完成后无法更新按钮标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35066687/