Error: 'NSOperationQueue' has been renamed to OperationQueue
Error: 'NSOperationQueue' has been renamed to OperationQueue
在 Xcode 8.0 中,我在为 Swift 3.0
编译时遇到错误
错误:“'NSOperationQueue' 已重命名为 OperationQueue”
当我切换到 OperationQueue.mainQueue() 时,方法 "mainQueue" 不存在!被什么取代了???
let manager = CMMotionManager()
if manager.isGyroAvailable {
manager.gyroUpdateInterval = 0.1
manager.startGyroUpdates()
let queue = NSOperationQueue.mainQueue()
manager.startGyroUpdatesToQueue(queue) {
(data, error) in
// ...
}
}
if manager.isAccelerometerAvailable {
manager.accelerometerUpdateInterval = 0.01
manager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue()) {
[weak self] (data: CMAccelerometerData?, error: NSError?) in
if let acceleration = data?.acceleration {
self.physicsWorld.gravity = CGVectorMake(acceleration.x, acceleration.y)
}
}
}
如何修正上面的代码,使 NSOperationQueues 的格式正确?
写OperationQueue.main
。
相当简单。实际上,在您的代码中,您可以跳过一个步骤,只需在需要操作队列的地方编写 .main
即可。所以:
manager.startGyroUpdatesToQueue(.main) {
在 Xcode 8.0 中,我在为 Swift 3.0
编译时遇到错误错误:“'NSOperationQueue' 已重命名为 OperationQueue”
当我切换到 OperationQueue.mainQueue() 时,方法 "mainQueue" 不存在!被什么取代了???
let manager = CMMotionManager()
if manager.isGyroAvailable {
manager.gyroUpdateInterval = 0.1
manager.startGyroUpdates()
let queue = NSOperationQueue.mainQueue()
manager.startGyroUpdatesToQueue(queue) {
(data, error) in
// ...
}
}
if manager.isAccelerometerAvailable {
manager.accelerometerUpdateInterval = 0.01
manager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue()) {
[weak self] (data: CMAccelerometerData?, error: NSError?) in
if let acceleration = data?.acceleration {
self.physicsWorld.gravity = CGVectorMake(acceleration.x, acceleration.y)
}
}
}
如何修正上面的代码,使 NSOperationQueues 的格式正确?
写OperationQueue.main
。
相当简单。实际上,在您的代码中,您可以跳过一个步骤,只需在需要操作队列的地方编写 .main
即可。所以:
manager.startGyroUpdatesToQueue(.main) {