我在应用中处理棘手的情况。这个应用程序显示了一个UITableView中的文件列表,你可以从那里下载(我使用AFnetworking 2.0)一个文件然后你可以在另一个UITableView中看到下载进度(所有的视图都在UITabBarController中)。
我的问题是,我不确定如何重新加载显示当前下载的UITableVIew,当添加新的或者完成或取消一个时。我尝试使用KVO,但它没有从AFnetworking观察操作队列。
修改 这是我试过的KVO代码
在我的下载UITableViewCell
中 - (void)viewDidLoad
{
[super viewDidLoad];
[[[[PodcastManager sharedManager] sessionManager] operationQueue] addObserver:self
forKeyPath:NSStringFromSelector(@selector(operations))
options:NSKeyValueObservingOptionNew
context:nil];
}
然后......
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if (object == [[[PodcastManager sharedManager] sessionManager] operationQueue]) {
if ([keyPath isEqualToString:NSStringFromSelector(@selector(operations))]) {
NSLog(@"OperationCount: %lu", (unsigned long)[[[[[PodcastManager sharedManager] sessionManager] operationQueue] operations] count] );
}
}
}
但是这个"解决方案"没在这里工作。
在过去,我遇到了与另一个应用程序类似的情况,然后我使用了块,但这次,我想避免使用该解决方案,因为我想要重用的当前应用程序代码的某些部分未来。
任何人都面临类似的情况可以带来一些光明吗?
谢谢。
答案 0 :(得分:0)
为什么不运行
[tableView reloadData];
每次下载后?也许我错过了一些东西。但那就是我要做的事。