2013-07-20 88 views
0

我有一個使用位置服務的應用程序。 在我的appdelegate我正在初始化我的位置管理財產位置服務切換時iphone應用程序崩潰

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]; 
} 

應用程序崩潰十分之一的時候,當我從切換位置服務設置

在儀器調試之後,這是錯誤顯示

enter image description here

請提出相同的解決方法。

+0

是如何的LocationManager財產申報?應用程序委託中的_method_是由locationManager初始化的嗎?這是在應用程序中聲明的唯一CLLocationManager嗎? – Anna

+0

它被稱爲 - (void)applicationDidBecomeActive:(UIApplication *)應用程序和 - (BOOL)應用程序:(UIApplication *)應用程序didFinishLaunchingWithOptions:(NSDictionary *)launchOptions –

+0

這是我從組織者 - 控制檯 - com.apple .launchd [1] :(UIKitApplication:com.neebal.Demo [0x51ec])作業似乎已崩潰:分割錯誤:11 Jul 20 18:06:56 backboardd [26] :Application'UIKitApplication:com.neebal .Demo [0x51ec]'異常退出,信號11:分段錯誤:11 –

回答

0

創建一個實例變量,如果你已經沒有那就是當你設置如下圖所示

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

這是電弧這麼寫的添加相同的名稱cllocationmanager財產,只有通話self.locationmanager你的autorelease如果需要的話。