2008-10-30 39 views
8

我有一个使用加速度计的应用程序。有时,应用程序将在没有加速度计数据更新的情况下启动。重新启动应用程序,有时问题仍然存在,有时不会。甚至更奇怪,有时我可以尝试10次,一切都按预期工作。这是一个错误,或者可能是我缺少的东西。调试时,当加速度计没有更新时,此代码永远不会被调用:有时不称为加速度计委托方法

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration; 

任何想法?

回答

7

我终于找到了解决办法。这是一个已知的错误。所以我发现的工作是开始一个线程,并让这个线程检查加速器代表是否已经被调用,如果已经调用,那么退出线程,如果没有,再次设置代理并重新测试,直到加速器代表被调用。我彻底地测试了它,它完美地工作。我希望在iPhone OS的下一次更新中得到解决。

1

我有同样的问题。它可能是我从CrashLanding样本制作的应用程序的1/20次。在我注意到它与我的应用程序后,我抓住了Crashlanding的一个新版本,安装它,并最终以加速度计失败开始。

我不知道如何解决它。老实说,我讨厌加速度计......至少对于控制游戏: - \

此外,当我启动“加速计”示例项目时,加速计有时会失败。

1

正如其他人所说,这是一个已知的bug;我已经记录了苹果的错误(Bug Reporter问题ID 6093028),也许其他人也这样做了。据我所知,所有使用UIAccelerometer的应用程序(包括Apple的示例应用程序)都受到这个问题的困扰,尽管发生频率各不相同。

1

FWIW,我的应用程序被广泛使用,它使用加速度计,我从来没有遇到过这个问题。

我的用例可能与您的用例不同:我只在用户请求上启用它,并且在应用程序启动后很好。