完成请求后无法更新按钮标题

时间:2016-01-28 16:24:48

标签: ios swift uitableview

我在单独的类中创建一个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
    }

    }


}

1 个答案:

答案 0 :(得分:2)

您应该在主队列上调度呼叫,尝试:

dispatch_async(dispatch_get_main_queue(),{

     self.openedIssuesButton.setTitle("Opened Issues: \(self.openedIssuesArray.count)", forState: .Normal)
})

我相信请求是在后台队列中进行的,但所有与UI相关的操作都必须在主队列中完成。