LocationManager все еще живет при переключении вкладки - PullRequest
0 голосов
/ 15 сентября 2010

У меня есть приложение TabBarApplication с четырьмя элементами панели вкладок.

Моя третья вкладка использует CLLocationManager для определения местонахождения пользователя и т. Д.

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {

[locationManager stopUpdatingLocation];
NSLog(@"error%@",error);
switch([error code])
{
    case kCLErrorNetwork:
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Please check your network connection or that you are not in airplane mode." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
        [alert show];
        [alert release];
    }
        break;
    case kCLErrorDenied:{
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"You have denied to allow Berns to get your location. " delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
        [alert show];
        [alert release];
    }
        break;
    default:
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Unknown network error." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
        [alert show];
        [alert release];
    }
        break;
}

}

Но когда я переключаю вкладку на четвертую, это происходит:

Я получаю UIAlertView с сообщением:

Unknown network error.

Не умирает ли CLLocationManager при переключении вкладки?Я назвал метод [release] в методе dealloc.

Ответы [ 2 ]

0 голосов
/ 30 января 2013
**use this in dealloc method**

-(void)dealloc
{

  [locationManager stopUpdatingLocation];

locationManager.delegate=nil;

[locationManager release];
}

//...........cheers.
0 голосов
/ 28 сентября 2010

Я думаю, что это связано с тем, что я не реализовал Reachability для проверки сетевого подключения.

Это также требование в Руководстве по App Store (или как вы его называете).

Таким образом, ответ: Проверьте подключение к Интернету с помощью Reachability и сообщите пользователю, если приложение требует этого.

...