代码之家  ›  专栏  ›  技术社区  ›  bpapa

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

  •  0
  • bpapa  · 技术社区  · 17 年前

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

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

    知道我做错了什么吗?

    2 回复  |  直到 9 年前
        1
  •  1
  •   David Maymudes    17 年前

    你的导航控制器支持吗 CLLocationManagerDelegate

    你的工作是什么 locationManager:didUpdateToLocation:fromLocation: 功能看起来像什么?

        2
  •  1
  •   Community Mohan Dere    9 年前

    this question

    为了解决这个问题,我最后跟着 this approach

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

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