我有一个使用加速度计的应用程序。有时,应用程序将在没有更新加速度计数据的情况下启动。重新启动应用程序,有时问题仍然存在,有时则不会。更奇怪的是,有时我可以尝试 10 次,一切都按预期工作。这是一个错误,还是我缺少的东西。调试,当加速度计未更新时,永远不会调用此代码:
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration;
有任何想法吗?
我有一个使用加速度计的应用程序。有时,应用程序将在没有更新加速度计数据的情况下启动。重新启动应用程序,有时问题仍然存在,有时则不会。更奇怪的是,有时我可以尝试 10 次,一切都按预期工作。这是一个错误,还是我缺少的东西。调试,当加速度计未更新时,永远不会调用此代码:
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration;
有任何想法吗?
我终于找到了解决办法。这是一个已知的错误。所以我发现的解决方法是启动一个线程并让这个线程检查加速度计委托是否已被调用,如果有,则退出线程,如果没有,再次设置委托,并重新测试,直到加速度计委托被调用。我对此进行了彻底的测试,它完美无缺。我希望这会在 iPhone OS 的下一次更新中得到解决。
我有着同样的问题。我用 CrashLanding 示例制作的应用程序可能会发生 1/20 次。在我用我的应用程序注意到它之后,我抓住了一个新版本的 Crashlanding,安装了它,最后让它以加速度计失败开始。
我不知道如何解决它。老实说,我讨厌加速度计……至少对于控制游戏来说:-\
此外,当我启动“加速度计”示例项目时,加速度计偶尔会失败。
正如其他人所提到的,这是一个已知的错误;我已经用 Apple 记录了这个错误(Bug Reporter 问题 ID 6093028),也许其他人也这样做了。据我所知,所有使用 UIAccelerometer 的应用程序(包括 Apple 的示例应用程序)都会遇到此问题,尽管发生频率各不相同。
FWIW,我的应用程序被广泛使用,它使用加速度计,我从来没有遇到过这个问题。
我的用例可能与您的不同:我仅在应用程序启动后才根据用户请求启用它。