无法从UITableViewController中的其他方法调用函数

时间:2011-11-20 11:39:45

标签: iphone objective-c ios4 uitabbarcontroller uitableview

我的测试应用程序用于解析远程xml文件中的数据。它包括一个带有4个其他控制器的UITabBarController,例如2个UINavigationControllers和2个UIViewControllers。 我使用我的AppDelegate获取连接,然后将NSData发送到名为ParseOperation的NSOperation文件。解析完所有数据后,它将使用NSNotification再次将所有数据返回给AppDelegate。这是我的代码功能。

// 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:albums] ==>这里没有数据或值,但是albums参数变量有数据-_- !!!并且在运行应用程序时,看不到任何内容,因为

- (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
}

0 个答案:

没有答案