当询问用户是否想要使用位置服务时,应用程序崩溃

时间:2009-09-02 20:29:15

标签: iphone mapkit core-location

我有一个使用CoreLocation的iPhone应用程序。

首次安装应用程序时,会显示iPhone系统消息,询问用户是否要允许位置服务,如果他们单击是,我的应用程序突然显示我的应用程序的第一个屏幕(我正在使用导航控制器) ),并崩溃。这就是我在日志中看到的内容 -

warning: UUID mismatch detected with the loaded library - on disk is:
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/PrivateFrameworks/CoreTelephony.framework/CoreTelephony
=uuid-mismatch-with-loaded-file,file="/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/PrivateFrameworks/CoreTelephony.framework/CoreTelephony"
Program received signal:  “EXC_BAD_ACCESS”.

堆栈跟踪看起来像这样 alt text

我的代码与LocateMe示例(可在我的设备上运行)相距太远。我有这个:

CLLocationManager *clLocationManager = [[CLLocationManager alloc] init];
clLocationManager.delegate = self;

if (clLocationManager.locationServicesEnabled) {
    [clLocationManager startUpdatingLocation];
} else {
    self.searchBar.placeholder = @"Enter location";
}

有任何想法,我做错了吗?

2 个答案:

答案 0 :(得分:1)

导航控制器是否支持CLLocationManagerDelegate?它看起来像是试图向你发送一个事件而崩溃。

您的locationManager:didUpdateToLocation:fromLocation:功能是什么样的?

答案 1 :(得分:1)

看起来这是this question

的副产品

为了解决这个问题,我在this approach

之后结束了

基本上,在我的ViewController的dealloc方法中 -

- (void)dealloc {
locationManager.delegate = nil;
[locationManager release];
}