ios - UILabel 值未在 Parse block 内更新

标签 ios swift parse-platform event-dispatch-thread

我有以下代码:

var gaugeView1 = CHCircleGaugeView(frame: CGRectMake(0, 0, 280, 280))
self.mainGaugeView.addSubview(gaugeView1)
gaugeView1.setTitleValue("TODAY", hideLabel: false);

var query = PFQuery(className: "Values")
query.findObjectsInBackgroundWithBlock({ (objects, error) in
    if let valObjects = objects as? [PFObject] {
        for val in valObjects {
            if let average = val.objectForKey("AVERAGE") as? Double {
                dispatch_sync(dispatch_get_main_queue(), { () -> Void in
                    gaugeView1.setValue(average, hideLabel: false, animated: true)
                })
            }
        }
    }
})

问题在于 gaugeView1.setValue() 实际上并未更新该值。

最初我没有让它在主线程上运行然后添加到 dispatch_sync() 不幸的是这并没有解决问题。

最佳答案

您应该使用 dispatch_async 而不是 dispatch_sync:

dispatch_async(dispatch_get_main_queue(), { () -> Void in
  gaugeView1.setValue(average, hideLabel: false, animated: true)
})

关于ios - UILabel 值未在 Parse block 内更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28471310/

相关文章:

ios - {"cod":401, "message":“使用 Moya 时出现 Open Weather API 错误,API key 无效

swift - NSLog 不可用

ios - 由于 Swift 中的空值,For 循环未执行

ios - 库未加载 : @rpath/leveldb. framework/leveldb

ios - Sprite Kit 中的简单碰撞

iphone - 删除应用程序然后重新安装时的 iOS 推送通知行为

ios - 为静态 UITableViewCell 子类创建属性

ios - 是否可以刷新单个 RLMObject?

javascript - 使用 Parse 客户端站点登录 Facebook,使用 Express js 的用户对象

javascript - Uncaught Error : Can't form encode an Object