【发布时间】:2011-11-06 13:54:15
【问题描述】:
我制作了一个天气应用程序,它目前需要使用您的位置才能工作。我正忙着试图消除这种依赖关系,但我仍然需要在第一次开始时知道用户是否允许它,以创建一个当前位置托管对象来使用。
这个想法是它加载前几件事,然后在必要时请求许可,然后继续。一开始它有效,我不确定我做了什么改变来打破它,但我希望你们中的一些人能看到哪里出了问题。几个小时以来,我一直在盯着自己瞎看,所以希望能有一些新的看法:)
对于第二次阅读本文的人:是的,我重新写了这个问题,因为问题似乎出在我想象的其他地方。
我的应用永远不会通过这段代码:
dispatch_sync(dispatch_get_main_queue(), ^{
locationManager = [[CLLocationManager alloc]init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
[locationManager startUpdatingLocation];
});
这是我的 didFinishLaunching 方法中发生的第一件事,我找不到任何会阻塞主线程的东西。早些时候,我遇到了类似的问题,我设法从 locationmanager 获得授权,但后来应用程序在主队列上的调度处停止(以初始化我的界面)。那为什么会被屏蔽呢?
【问题讨论】:
-
这很奇怪,但我有同样的问题,即使我从后台线程调用完全相同的代码。
标签: iphone objective-c ios ipad cllocationmanager