2014-02-02 5 views
0

Я пытаюсь найти пользователей в текущем городе.Доступ к недвижимости снаружи метод

@interface WeatherViewController() 
    @property (strong, nonatomic) NSString *test; 
@end 

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { 
[locationManager stopUpdatingLocation]; 

CLGeocoder * geoCoder = [[CLGeocoder alloc] init]; 
[geoCoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) { 
    for (CLPlacemark * placemark in placemarks) { 
     _test = [placemark locality]; 
     NSLog(@"%@", _test); 
    } 
}]; 
} 

Запуск приложения регистрирует текущий город в зависимости от местоположения.

Если я попытаюсь запустить NSLog(@"%@", _test); вне метода locationManager, то полученные данные будут пустыми. Может ли кто-нибудь объяснить, почему _test возвращает значение только внутри цикла for?

+0

Потому что тест освобождается после завершения блока. – Milo

ответ

-2

Вы должны использовать dotSyntax, self.test = [placeMark locality] Скорее всего, это проблема управления памятью!

+0

Не повезло, я боюсь. – joshuahornby10

+3

Это проблема * асинхронного метода *, а не проблема управления памятью. –

+0

Глупый я, это абсолютно правильно! _test не установлен ДО НЕСМОТРЕННОГО местоположения: -) –

Смежные вопросы