当前位置: 首页 > 面试题库 >

Motion Manager无法在Swift中运行

仉宪
2023-03-14
问题内容

我尝试在Swift中使用运动管理器,但是更新块内的日志从不打印。

    var motionManager: CMMotionManager = CMMotionManager()
    motionManager.accelerometerUpdateInterval = 0.01
    println(motionManager.deviceMotionAvailable) // print true
    println(motionManager.deviceMotionActive) // print false
    motionManager.startDeviceMotionUpdatesToQueue(NSOperationQueue.currentQueue(), withHandler:{
        deviceManager, error in
        println("Test") // no print
    })

    println(motionManager.deviceMotionActive) // print false

我的Objective-C实施效果很好。有人知道为什么没有调用我的更新块吗?


问题答案:

那是因为当方法返回时,运动管理器实例被抛出了。您应该在类上创建一个属性以包含运动管理器。此外,您似乎只是在更改管理器accelerometerUpdateInterval,然后监视设备运动的变化。您应该deviceMotionUpdateInterval改为设置属性。

import CoreMotion

class ViewController: UIViewController {
    let motionManager = CMMotionManager()

    override func viewDidLoad() {
        super.viewDidLoad()

        motionManager.deviceMotionUpdateInterval = 0.01
        motionManager.startDeviceMotionUpdates(to: OperationQueue.current!) { deviceManager, error in
            print("Test") // no print
        }

        print(motionManager.isDeviceMotionActive) // print false
    }
}


 类似资料:
  • 我尝试从Swift代码中运行AppleScript命令,如下所示: 然后我尝试了两种方法: 或更老的方法: 这两个命令都不起作用,而且我尝试过的两个命令都是使用osascript-e“some command”工具从终端程序运行的。

  • 我正在试着把cucumber放进圣杯里。我得到以下错误。 什么可能导致这种情况,我如何解决它?

  • null 我的代码是: 我尝试过创建Scala工作表,它工作了。

  • https://i.stack.imgur.com/tE6Rq.png 我是科特林的新手。这是我的第一个项目,我有问题。我不知道现在该怎么办。如果有人能解决这个问题,对我真的很有帮助。提前谢谢。请看附件中的照片

  • 问题内容: 我正在尝试在Swift 3中建立一个我已经在Swift 2中拥有的范围,但是它一直给我这个错误: 这是我的代码: expiredRange是一个 在Swift 2中,我有: 问题答案: 在Swift 3中,“集合移动其索引”,请参阅 关于Swift进化的集合和索引的新模型。 这是字符串范围和索引的示例: 的 在字符串上调用方法,以从范围(现在具有属性而不是 )中计算新索引。

  • 我的蚂蚁模型最近某个时候停止工作了。我不知道确切的时间,因为我只是偶尔在这个项目中进行ant构建。我得到以下弹出窗口: 错误仅适用于此项目。我可以从另一个项目运行构建没有问题。 build.xml文件可能非常简单,但仍然会导致错误: 我检查了Eclipse的日志,发现了以下错误: 我使用的是Eclipse 2020-06。我尝试升级到Eclipse 2020-09来解决这个问题,但没有成功。 根据