【问题标题】:Application crashes when asking if user wants to use Location Services询问用户是否要使用定位服务时应用程序崩溃
【发布时间】:2009-09-04 00:03:29
【问题描述】:

我有一个使用 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";
}

知道我做错了什么吗?

【问题讨论】:

    标签: iphone mapkit core-location


    【解决方案1】:

    您的导航控制器是否支持CLLocationManagerDelegate?尝试向您发送事件时似乎崩溃了。

    你的locationManager:didUpdateToLocation:fromLocation: 函数是什么样的?

    【讨论】:

    • 看起来是因为我的委托(即 self)被设置为 nil。看看我的答案(如果你能帮忙的话,还有链接到的问题)
    【解决方案2】:

    看起来这是this question的副产品

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-13
      相关资源
      最近更新 更多