0
我试图利用运动数据。我使用MotionKit Framework创建了一个测试应用程序。 print(testString)
以一秒为间隔正确地将x
变量打印到控制台。但我的testLabel不会更新一次。Swift/MotionKit.framework /如何更新标签
import UIKit
import MotionKit
class ViewController: UIViewController {
@IBOutlet weak var testLabel: UILabel!
let motionKit = MotionKit()
override func viewDidLoad() {
super.viewDidLoad()
motionKit.getAccelerometerValues(1.0) { (x, y, z) ->() in
let testString = String(x)
self.testLabel.text = testString
print(testString)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
我在想什么?非常感谢帮助。
谢谢。它做到了。你能解释我为什么吗?所以我不只是复制/粘贴,但理解它,请^^ –
所有UI更新应该在MainThread上完成。您的motionKit.getAccelerometerValues在后台线程上运行,因此当您更新该线程上的标签时,它不会更新为UI,因此要更新主线程上的标签,必须将其包装在dispatch_async(dispatch_get_main_queue()主线程 –
好吧谢谢你的努力:) –