错误,一般,时间,320195751.128,函数,"void CLClientHandleRegistrationTimerExpiry(__CFRunLoopTimer *,void *)",注册计时器已过期,但客户端仍在注册!
我在更广泛的互联网上找到的关于这个问题的文章很少,没有人有有用的信息。
我有一个通过CLLocationManager的startUpdatingLocation方法监控设备位置的应用程序。它开始监控,运行一段时间,然后在调试输出中弹出此消息。从那时起,不再发送位置更新。
这个错误正在扼杀应用程序的定位功能,我不知道是什么原因造成的。它甚至在结尾有一个感叹号,这意味着这显然是一个令人兴奋的错误。
- 更新日期:**
虽然我从来没有找到解决这个问题的办法,也没有弄清楚为什么会发生这种情况,但我也失去了重现它的能力。这似乎发生在我做了很多事情的一段时间里,包括代码结构的总体变化,然后更新到iOS 5测试版。那里的一些东西似乎让我对这个问题保持沉默。
8条答案
按热度按时间tv6aics11#
您是否实施了
这个能抓住它吗
您需要在正常运行中检查kCLErrorNetwork、kCLErrorDenied、kCLErrorHeadingFailure和kCLErrorLocationUnknown,但我想知道是否还有其他委托仍然可以捕获的错误?
这可以给予您有机会停止然后重新启动定位服务。
0ejtzxu12#
离开@schillace不得不分享的内容,有没有可能你试图在不注意用户授权状态的情况下强制更新位置?
在知道
[CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized
之前,尽量不要打电话给-startUpdatingLocation
。new9mtju3#
我不知道这是否是答案,但这里有一个提示...我正在使用assetFromURL,我从资产库加载图像时遇到间歇性故障。所以我写了一些代码来测试一个理论,这个理论可以非常快速地加载库中的每个URL。我开始在这段代码中看到这个错误。
所以......我的理论是,如果你打了一个电话,导致位置管理器显示“应用程序需要你的位置”对话框,然后你在对话框打开时继续打电话,你会得到这个错误。一旦我确认了对话框并重新运行程序,我就再也看不到这个错误了。
希望能有所帮助,这只是一个猜测。
zu0ti5jz4#
你确定这是一个问题吗?在我看来,在注册到位置管理器完成之前,你正在调试一个断点(有效地挂起应用程序)。同时,计时器到期,你还没有完成注册。如果你取出断点,消息是否会出现?
5anewei65#
你在主线程上做定位的东西吗?我在从后台线程调用CLLocation API时遇到了各种各样的奇怪问题。我把几个关键的设置调用移到了主线程中,然后一切都正常工作了。
yqkkidmi6#
我得到了同样的错误,并发现这是因为我忘记提到类实现了.h文件中的CLLocationManagerDelegate。
将CLLocationManagerDelegate添加到头文件中,并使用下面一行指向该委托,这为我解决了这个错误。
h43kikqp7#
我在LocateMe中实现超时(延迟后执行选择器)时得到了这个,我以前的代码使用了另一个方法。我不知道这是否是一个线索。
rdrgkggo8#
我忘了加上
隐私-使用时的位置用法描述
我照做了,错误就消失了。