首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >核心运动在Xcode 7 Swift 2.0中不起作用

核心运动在Xcode 7 Swift 2.0中不起作用
EN

Stack Overflow用户
提问于 2015-09-01 17:19:09
回答 1查看 1.2K关注 0票数 2

我没有从核心运动输出,无论我使用拉或推方法。我在iPhone 4s iOS 8.4上使用了SWIFT2.0的Xcode 7.0 beta 6。

代码语言:javascript
复制
    let manager = CMMotionManager()

    manager.accelerometerUpdateInterval = 0.3
    manager.startAccelerometerUpdates()
    print(manager.accelerometerData?.acceleration.x)

    manager.accelerometerUpdateInterval = 0.3
    manager.startAccelerometerUpdatesToQueue(NSOperationQueue()) { (data: CMAccelerometerData?, error: NSError?) in
        guard data != nil else {
            print("There was an error: \(error)")
            return
        }
       print(data!.acceleration.x)
    }

有人知道我做错了什么吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-04 02:09:28

有趣的事..。我来这里是为了寻找这个问题的答案。;)

据我所知(我不是Swift或XCode方面的专家),问题是核心运动指令之间没有足够的时间来获取数据:如果您调用manager.startAccelerometerUpdates(),然后再过一段时间请求accelerometerData,那么您就没有问题了。如果在我的SpriteKit游戏中,我启动了GameViewController的viewDidLoad方法中的加速度计更新,然后在场景的didMoveToView方法中要求提供加速度计数据,那么我就会得到数据。但是,如果我启动加速度计,并以相同的方法要求数据,那么我什么也得不到(当我启动加速度计之前,在另一个场景,然后要求在下一个场景中的数据)。

我不知道这是正常的还是错误的,但至少我找到了一个暂时的解决方案:在获取数据之前尽可能多地给核心运动一些时间。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32337453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档