我有以下代码:
[[AHPinterestAPIClient sharedClient] getPath:requestURLPath parameters:nil
success:^(AFHTTPRequestOperation *operation, id response) {
[weakSelf.backgroundQueue_ addOperationWithBlock:^{
[self doSomeHeavyComputation];
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
[weakSelf.collectionView_ setContentOffset:CGPointMake(0, 0)];
[weakSelf.collectionView_ reloadData];
[weakSelf.progressHUD_ hide:YES];
[[NSNotificationCenter defaultCenter] performSelector:@selector(postNotificationName:object:) withObject:@"UIScrollViewDidStopScrolling" afterDelay:0.3];
[weakSelf.progressHUD_ hide:YES];
}];
}];
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
[weakSelf.progressHUD_ hide:YES];
[weakSelf.collectionView_.pullToRefreshView stopAnimating];
NSLog(@"Error fetching user data!");
NSLog(@"%@", error);
}];
出于某种原因,这在 iOS 5 中工作得很好,但在 iOS 6 中却不行(它崩溃了)。现在我不打算询问 iOS 6,因为它仍处于保密协议之下。我想知道的是,上面的代码是否错误?如果是,我该如何解决。
如果我将代码放在 mainQueue 之外的块内,那就没问题了。我在这里要做的是仅在 [self doSomeHeavyComputation] 完成后才执行 NSOperationQueue mainQueue 。所以这是一个依赖,我应该如何添加这个依赖?
更新:
如果有帮助,这是崩溃日志: