Cod*_*der 16 iphone xcode ios core-motion
以下是该问题的极为简化的版本:
import UIKit
import CoreMotion
class ViewController: UIViewController {
private let manager = CMMotionManager()
private let interval = 0.01
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
startUpdates()
}
private func startUpdates() {
let queue = OperationQueue()
queue.name = "com.demo.motion"
queue.qualityOfService = .userInteractive
queue.maxConcurrentOperationCount = 1
manager.accelerometerUpdateInterval = interval
manager.startAccelerometerUpdates(to: queue) { _, _ in }
}
}
Run Code Online (Sandbox Code Playgroud)
当我在iPhone XR上运行此程序时,我将收到以下消息:
主线程检查器:在后台线程上调用的UI API:-[UIApplication applicationState] PID:1237,TID:147763,线程名称:com.apple.CoreMotion.MotionThread,队列名称:com.apple.root.default-qos.overcommit ,QoS:0
qualityOfService对此没有影响(我的首选是使用utility)startUpdates()功能包装在主调度程序周围,但没有成功根据队列名称和发生的时间,我认为这是内部的东西,与较旧的设备相比,XR中速度更快的处理器才暴露出来。
| 归档时间: |
|
| 查看次数: |
2932 次 |
| 最近记录: |