Мое тестовое приложение используется для анализа данных из удаленного XML-файла.Он включает в себя UITabBarController с 4 другими контроллерами, такими как 2 UINavigationControllers и 2 UIViewControllers.Я использую свой AppDelegate для получения соединения, а затем отправляю NSData в файл NSOperation под названием ParseOperation.После анализа всех данных он снова вернет все данные в AppDelegate с помощью NSNotification.Это моя функция кода.
// Our NSNotification callback from the running NSOperation to add the albums
- (void)addAlbums:(NSNotification *)notif {
assert([NSThread isMainThread]);
[self addAlbumsToList:[[notif userInfo] valueForKey:kAlbumResultsKey]];
}
- (void)addAlbumsToList:(NSArray *)albums {
// insert the albums into our ViewController's data source (for KVO purposes)
[self.albumViewController insertAlbums:albums];
NSLog(@"Count: %d", [albumViewController.albumList count]); ==> HERE return value 0
}
И в моем AlbumViewController (происходит от UITableViewController) есть эта функция
#pragma mark - KVO support
- (void)insertAlbums:(NSArray *)albums
{
[self willChangeValueForKey:@"albumList"];
[self.albumList addObjectsFromArray:albums];
[self didChangeValueForKey:@"albumList"];
}
Я вызываю NSLog для проверки [self.albumViewController insertAlbums: album] ==> Здесь нет данных или значения, но переменная аргумента album содержит данные -_- !!!А когда запускаешь приложение и ничего не видишь, потому что
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return [albumList count];
}
==> Возвращает 0
Так что я не знаю, что происходит с моим приложением и с функцией
- (void)addAlbumsToList:(NSArray *)albums {
// insert the earthquakes into our rootViewController's data source (for KVO purposes)
[self.albumViewController insertAlbums:albums];
NSLog(@"Count: %d", [albumViewController.albumList count]); ==> HERE return value 0
}