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

标签 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
    }

    }


}

最佳答案

你应该在主队列上调度调用,试试看:

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/

相关文章:

ios - 如何通过容器 View Controller 判断使用了哪些单元格?

ios - 如何在 iPhone 的手势识别器中获取原始附加 View ?

swift - Kitura Swift App 无法在 Heroku 上编译

ios - UITableView 委托(delegate)方法没有被调用?

ios - 如何在 swift 中将 Objc c Enum 转换为 NSValue

ios - 使用核心数据获取零项会导致错误

ios - numberOfRowsInSection 没有覆盖属性检查器

从 Swift 调用 2D C 数组

swift - 单个 UITableview 单元格中的多种字体大小(Swift)

ios - tableView 上显示的奇怪标签