代码之家  ›  专栏  ›  技术社区  ›  carlos

有时不调用加速度计委托方法

  •  8
  • carlos  · 技术社区  · 16 年前

    我有一个使用加速度计的应用程序。有时,应用程序将在不更新加速度计数据的情况下启动。重新启动应用程序,有时问题仍然存在,有时不存在。更奇怪的是,有时我可以尝试10次,一切都按预期工作。这是个虫子,或者是我找不到的东西。调试,在加速度计未更新时从不调用此代码:

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

    有什么想法吗?

    4 回复  |  直到 16 年前
        1
  •  7
  •   carlos    16 年前

    我终于找到了一份工作。这是一个已知的错误。所以我找到的解决方法是启动一个线程,让这个线程检查是否调用了加速计委托,如果调用了,那么退出线程,如果没有,则再次设置委托,然后重新测试,直到调用了加速计委托。我对此进行了全面的测试,它运行得完美无瑕。我希望iPhone操作系统的下一次更新能够解决这个问题。

        2
  •  1
  •   MrDatabase    16 年前

    我也有同样的问题。使用我从crashlanding样本中制作的应用程序,这种情况可能会发生1/20次。在我用我的应用程序注意到它之后,我抓起了一个新版本的坠毁着陆系统,安装了它,最后让它从加速度计失效开始。

    我不知道怎么修。老实说,我讨厌加速度计…至少控制游戏:-\

    此外,当我启动“加速度计”样本项目时,加速度计偶尔会失败。

        3
  •  1
  •   SytS    16 年前

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

        4
  •  1
  •   Marco    16 年前

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

    我的用例可能与你的不同:我只在用户请求时启用它,在应用程序启动之后。