sách gpt4 ăn đã đi

ios - Cảnh báo trình kiểm tra luồng chính cho CoreMotion, chỉ có trên iPhone 2018

In lại 作者:技术小花猫 更新时间:2023-10-29 10:49:48 27 4
mua khóa gpt4 giày nike

以下是该问题的极其简化的版本:

import UIKit
import CoreMotion

class ViewController: UIViewController {
private let manager = CMMotionManager()
private let interval = 0.01

ghi đè hàm viewWillAppear(_ animated: Bool) {
super.viewWillAppear(hoạt hình)
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 }
}
}

当我在 iPhone XR 上运行它时,我将收到以下信息:

Main Thread Checker: UI API called on a background thread: -[UIApplication applicationState] PID: 1237, TID: 147763, Thread name: com.apple.CoreMotion.MotionThread, Queue name: com.apple.root.default-qos.overcommit, QoS: 0

  • 我的设备运行的是 12.3,这是目前最新的 iOS 版本
  • 在各种 iPad(2018 年之前)、iPhone 8、iPhone 6S 和其他旧型号上运行此程序,问题没有出现。
  • 更改qualityOfService对此没有影响(我更喜欢使用utility)
  • 出于好奇,我将整个 startUpdates() 函数包裹在主调度中,但没有成功

根据队列名称和发生这种情况的时间,我的假设是这是内部的一些东西,与旧设备相比,XR 中更快的处理器刚刚暴露出来。

câu trả lời hay nhất

使用iOS 13时的新答案

我刚刚在 2018 年的设备上使用新发布的 iOS 13 版本 (17A577) 对此进行了测试,它不再产生线程错误。

使用 iOS 12 时的先前答案

这是一个已知问题,已报告给 Apple with a radar linked here .

关于ios - CoreMotion 的主线程检查器警告,仅出现在 2018 款 iPhone 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54607856/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress