【发布时间】:2015-04-19 21:01:21
【问题描述】:
在任何人怀疑之前,是的,我确实阅读了其他解决方案,我的程序最近神秘地崩溃了。我没有对我的代码进行任何更改,就在今天尝试运行一个模拟让朋友看看我的应用程序,我得到了可怕的:
尝试在不提示位置授权的情况下启动 MapKit 位置更新。必须先调用 -[CLLocationManager requestWhenInUseAuthorization] 或 -[CLLocationManager requestAlwaysAuthorization]。
好吧,我仔细检查了我的 plist,两者都是
NSLocationAlwaysUsageDescription
和
NSLocationAlwaysUsageDescription
还在。
这是我的 viewDidLoad 方法:
- (void)viewDidLoad {
[super viewDidLoad];
[mainMapView setDelegate:self];
[mainMapView setShowsUserLocation:YES];
[manager setDelegate:self];
[manager requestWhenInUseAuthorization];
[manager requestAlwaysAuthorization];
[manager setDistanceFilter:kCLDistanceFilterNone];
[manager setDesiredAccuracy:kCLLocationAccuracyBest];
[manager startUpdatingLocation];
[search setDelegate:self];
[search setAlpha:0];
annotationArray = [[NSMutableArray alloc]init];
model = [[DataModel alloc]init];
}
有人有什么建议吗?
【问题讨论】:
-
你在哪里初始化管理器?向我们展示代码。
-
Paul 得到了答案,我在一个没有被调用的单独方法中初始化管理器。谢谢你指出这一点。我讨厌简单的疏忽……
-
没问题,我会给出答案,而不是评论。这样我们就可以得到一些虚假的互联网积分。
标签: ios objective-c xcode