У меня есть приложение для iPhone, которое использует UITableViewController
для отображения таблицы на экране. Данные таблицы (и другие данные, используемые приложением) инициализируются на: didFinishLaunchingWithOptions:
методе моего делегата приложения.
Приложение отлично работает на iOS4. На iOS5 данные таблицы не загружаются.
Я проверил и обнаружил, что метод didFinishLaunchingWithOptions:
теперь вызывается параллельно с отображением представления. По этой причине при получении размера таблицы я перехожу к моему делегату приложения, который по-прежнему не загружает данные таблицы и поэтому возвращает «0».
Есть ли способ решить эту проблему в iOS 5?
Вот метод, который вызывается первым на мой взгляд:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
PalmsterAppDelegate *appDelegate = (PalmsterAppDelegate *)[[UIApplication sharedApplication] delegate];
NSLog(@"tableView: %i", [appDelegate.listOfItems count]);
return [appDelegate.listOfItems count];
}
вызов: [appDelegate.listOfItems count]
возвращает ноль. И это ясно показывает, что порядок вещей:
didFinishLaunchingWithOptions
вызывается (я печатаю в журнал при запуске метода).
Затем вызывается tableView
и печатается ноль. Затем didFinishLaunchingWithOptions
заканчивается (я печатаю в журнал также в конце метода).