В настоящее время я пытаюсь передать название города, полученное CLGeocoder, в UILabel другого класса. Сначала CLGecoder классаПередача названия города CLGeocoder новому классу UILabel
FindLocation.h
@property (nonatomic, strong) NSString *cityName;
FindLocation.m - внутри метода (пустоте) locationManager: (CLLocationManager *) менеджер ...
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
if (self.isFirstUpdate) {
self.isFirstUpdate = NO;
return;
}
CLLocation *location = [locations lastObject];
if (location.horizontalAccuracy > 0) {
self.currentLocation = location;}
CLGeocoder *fgeo = [[CLGeocoder alloc] init];
// Reverse Geocode a CLLocation to a CLPlacemark
[fgeo reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError
*error){
NSLog(@"%@", location);
// Make sure the geocoder did not produce an error
// before continuing
if(!error){
// Iterate through all of the placemarks returned
// and output them to the console
for(CLPlacemark *placemark in placemarks){
NSLog(@"%@",[placemark description]);
self.cityName = [placemark locality];
NSLog(@"city is %@",cityName); }
[self.locationManager stopUpdatingLocation];
[self.delegate findLocationDidGeocodeCityName:self.cityName];
} else {
// Our geocoder had an error, output a message
// to the console
NSLog(@"There was a reverse geocoding error\n%@",
[error localizedDescription]);
Далее в моем FirstViewController это выглядит следующим образом:
FindLocation *cityname = [[FindLocation alloc] init];
[cityname cityName];
[self.cityLabel setText:(cityname.cityName)];
NSLog(@"CityName is...%@", cityname.cityName); //Log shows CityName is...(null)
Я не знаю, что здесь не так. Поскольку город найден, в последней части кода должно быть что-то не так, но я не знаю, что. Неправильно ли передается NSString - cityName?
Я бы установил точку останова в начале вашего locationManager: didUpdateLocations: метод и шаг за шагом. Интересно, обновляется ли он только один раз и поэтому возвращается после установки 'self.isFirstUpdate = NO'. Или, может быть, просто закомментируйте инструкцию 'return ;' и посмотрите, работает ли она. – atticus
Да, сейчас его зовут, но все равно не повезло с печатью на этикетке города – Pierre
Может быть, глупый вопрос, но уверены ли вы, что cityLabel подключен к интерфейсу Builder? – atticus