我的测试应用程序用于解析远程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
}