0

我有一个使用 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”.

堆栈跟踪看起来像这样 替代文字

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

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

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

关于我做错了什么的任何想法?

4

2 回答 2

1

你的导航控制器支持CLLocationManagerDelegate吗?看起来它试图向您发送事件时崩溃了。

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

于 2009-09-02T21:32:20.253 回答
1

看起来这是这个问题的副产品

为了解决这个问题,我最终采用了这种方法

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

- (void)dealloc {
locationManager.delegate = nil;
[locationManager release];
}
于 2009-09-03T16:03:29.593 回答