UITableView не заполняется при ожидании метода didUpdateToLocation от CLLocationManagerDelegate в iPhone SDK
-
22-08-2019 - |
Вопрос
Я пытаюсь заполнить UITableView массивом ячеек.Обычно я делаю это с помощью метода viewDidLoad, но на этот раз я хочу заполнить массив на основе местоположения.Ниже приведена первая строка моего интерфейса:
@interface RootViewController : UITableViewController
<UITableViewDelegate, UITableViewDataSource, CLLocationManagerDelegate> {
В файле реализации метод viewDidLoad выглядит следующим образом:
- (void)viewDidLoad {
// for location
self.locationManager = [[CLLocationManager alloc] init];
[locationManager startUpdatingLocation];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[super viewDidLoad];
}
Я заполняю массив ячеек методом didUpdateToLocation:
self.title = @"Open Buildings";
NSMutableArray *buildingArray = [[NSMutableArray alloc] initWithObjects:building1,
self.controllers = array;
Заголовок представления обновляется при нахождении местоположения, но массив не заполняется.Массив действительно заполнялся раньше, когда у меня был приведенный выше код в viewdidupdate .Мне пришлось переместить его в метод didupdatelocation, потому что приложение не будет иметь информации о местоположении при загрузке представления в методе viewDidLoad.
Решение
Ваше табличное представление не знает, что у вас есть новые данные.Итак, как только у вас появятся новые данные, вам нужно сообщить вашему табличному представлению о перезагрузке:
[myTableView reloadData];