1.1 秒ごとにメソッドを呼び出したいのですfunc adjustmentBestSongBpmHeartRate()
が、Timer を使用しましたが、機能しません。ドキュメントを読んで、多くのサンプル コードを見つけましたが、それでも機能します。何か見落としている点はありますか?
timer = Timer.scheduledTimer(timeInterval: 1.1, target: self, selector: #selector(self.adjustmentBestSongBpmHeartRate), userInfo: nil, repeats: false)
timer.fire()
func adjustmentBestSongBpmHeartRate() {
print("frr")
}
ベストアンサー1
OperationQueue 操作でタイマーを作成しても機能しないことがわかりました。これは、runloop がないためだと思います。
したがって、次のコードで問題は解決しました。
DispatchQueue.main.async {
// timer needs a runloop?
self.timeoutTimer = Timer.scheduledTimer(timeInterval: self.timeout, target: self, selector: #selector(self.onTimeout(_:)), userInfo: nil, repeats: false)
}