CLLocationManager不会在委托中回调方法

时间:2013-12-21 23:11:41

标签: ios objective-c multithreading callback cllocationmanager

CLLocationManager不回调方法:

locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status;

经用户许可。

我在单例类(经理类)中分配CLLocationManager实例,将委托分配给self,一切看起来都很好,但是没有用。

此外,我的应用程序中有许多多线程逻辑,我认为,问题是死锁或其他与多线程相关的问题。

如何揭示问题所在。

P.S。我也试过打电话

startMonitoringSignificantLocationChanges; 

在主线程上,这没有帮助。

3 个答案:

答案 0 :(得分:1)

好的,经过几个小时的尝试,我发现了这个: post

解决方案是在主线程上分配CLLocationManager。

答案 1 :(得分:0)

您对CLLocationManager有强烈的引用吗?它应该是类实现中的强属性@property CLLocationManager *myManager;或ivar(实例变量)。如果您在函数/方法中实例化CLLocationManager,并且没有任何引用,它将在您完成该函数后立即释放。

对该实例有强烈的引用。

答案 2 :(得分:0)

一旦viewDidLoad被调用,

分配/初始化CLocationManager。

- (void)viewDidLoad {
    [super viewDidLoad];

    locationManager = [[CLLocationManager alloc] init];
}