Невозможно вызвать функцию из другого метода в UITableViewController - PullRequest
0 голосов
/ 20 ноября 2011

Мое тестовое приложение используется для анализа данных из удаленного 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...