0
私はモーションデータを悪用しようとしています。 MotionKit Frameworkを使用してテストアプリを作成しました。 print(testString)
は、コンソールに1秒間隔で変数を正しく表示します。しかし、私の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()
}
}
私には何が欠けていますか?ヘルプは非常に感謝しています。
ありがとうdispatch_asyncであなたのテキストフィールドのテキストコードをラップします。それはそれをしました。なぜ私に説明できますか?だからコピー&ペーストだけではありませんが、理解してください^^ –
すべてのUIはMainThreadで更新する必要があります。あなたのmotionKit.getAccelerometerValuesはバックグラウンドスレッド上で実行されるので、そのスレッド上でラベルを更新するとUIに更新されないので、メインスレッドのラベルを更新するために、dispatch_async(dispatch_get_main_queue()...)内でラップする必要があります –
大丈夫あなたの努力に感謝します:) –