我开发了一个针对 iOS 4.3 的应用程序。效果很好。但自从我迁移到 iOS 5.0 以来,该应用程序开始表现出奇怪的行为。位置管理器不显示位置变化的更新。有人遇到过这种问题吗?
谢谢你的帮助。
我与 CLLocation 经理共享票价,出现奇怪的更新问题
从 iOS 4.x 迁移到 5 时:
-
您是否对 CLLocationManager 对象进行了子类化?
- Is the CLLocationManager instanced from a Singleton ?
-
problem:使用 CLLocationManager 对象作为属性
单例对象在 4.x 中工作正常,但在 iOS5 中不一致
-
fix:将对象移动到非单例对象
- If either of the above helps , or you've tried it and it failed
-
problem:由于某种原因 CLLocationManager 仍然没有运行
来自主线程所以你会经历奇怪的行为。
-
fix#1:创建 CLLocationManager 对象作为 appDelegate 中的属性
无需子类化它。 (事实证明,这个解决方案效果最好,即使在越狱的iphone上也是如此。)
。如果您的设计类似于情况 2,您仍然可以使用从单例指向其实例的动态属性。
-
fix#2:一个更肮脏的解决方案是确保它从主运行循环运行,或者使用在主线程上执行选择器或其他方式
希望这可以帮助 :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)