【问题标题】:iphone app crashes when location services are toggled切换位置服务时 iphone 应用程序崩溃
【发布时间】:2013-07-19 15:54:57
【问题描述】:

我有一个使用位置服务的应用程序。 在我的 appdelegate 中,我正在初始化我的位置管理器属性

if(self.locationManager == nil)
    {
        self.locationManager = [[[CLLocationManager alloc] init] autorelease];  // allocate cllocationmanager property
        self.locationManager.delegate = self;  // confirm the delegate 
        [self.locationManager startUpdatingLocation];  // start updating for location 
    }

并且位置管理器委托在 dealloc 方法中为零

- (void)dealloc
{
   [_window release];
   [_viewController release];

 // [locationManager release];
   self.locationManager.delegate = nil;
   [super dealloc];
}

当我从设置中切换位置服务时,应用程序会崩溃 10 次

在仪器中调试后,这是显示的错误

请提出相同的修复建议。

【问题讨论】:

  • locationManager 属性是如何声明的?应用程序委托中的哪个方法是 locationManager 初始化的?这是应用中唯一声明的 CLLocationManager 吗?
  • 它是从 - (void)applicationDidBecomeActive:(UIApplication *)application 和 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 调用的
  • 这是我从管理器 - 控制台 - com.apple.launchd[1] 获得的日志:(UIKitApplication:com.neebal.Demo[0x51ec]) 作业似乎已崩溃:分段故障:20 年 7 月 11 日 18:06:56 backboardd[26] :应用程序 'UIKitApplication:com.neebal.Demo[0x51ec]' 异常退出,信号 11:分段故障:11
  • 您实现了哪些委托方法?其中一些在 iOS6 中已被弃用。例如:- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

标签: ios objective-c core-location


【解决方案1】:

如果您还没有与您的 cllocationmanager 属性同名的实例变量,请创建一个实例变量,并且仅在您按此处所示设置时调用 self.locationmanager

   if (nil == locationManager){
        self.locationManager = [[CLLocationManager alloc] init];
        locationManager.desiredAccuracy = kCLLocationAccuracyBest;
        locationManager.delegate = self;
        [locationManager startUpdatingLocation];
        startLocation = nil;
    }

这是为 arc 编写的,因此如果需要,请添加您的自动释放。

【讨论】:

    【解决方案2】:

    您还没有将locationManager 告诉stopUpdatingLocation - Apple docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2011-06-20
      相关资源
      最近更新 更多