我正在尝试查找用户当前的城市。
@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);
}
}];
}
运行应用程序会根据位置记录当前城市。
如果我尝试在方法locationManager之外运行NSLog(@"%@", _test);
,则重新创建的数据为空。有人可以解释为什么_test
只在for循环中返回一个值吗?
答案 0 :(得分:-2)
你应该使用dotSyntax,self.test = [placeMark locality] 有可能这是一个内存管理问题!