本文介绍了删除UITableViewCell后,应用程序冻结的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我尝试在请求的成功块中删除 UITableViewCell 时出现问题.
There is a problem when I try to delete UITableViewCell in success block of the request.
在我的
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath我正在通过AFNetworking进行请求
I am making request with AFNetworking
- (NSURLSessionDataTask *)POST:(NSString *)URLString parameters:(id)parameters success:(void (^)(NSURLSessionDataTask *task, id responseObject))success failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure在此之后,我通过关闭SVProgressHUD并删除单元格来更新UI:
After that in success block I am updating UI by dismissing SVProgressHUD and deleting cell:
NSUserDefaults *usd = [NSUserDefaults standardUserDefaults]; [usd removeObjectForKey:@"payViaCreditCard"]; selectedCardID = nil; [[CreditCardManager sharedCreditCardManager] removeCreditCard:creditCardToDelete]; [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; [self.tableView reloadData];最后,我的用户界面没有更新并且应用程序冻结,当我重新启动应用程序时,NSUserDefaults中的数据已更改.
In the end my UI not updating and app freezes, when I relaunch the app the data in NSUserDefaults changed.
推荐答案如果您执行deleteRowsAtIndexPaths:withRowAnimation或tableView reloadData,那会很好.
It would be good if you do either deleteRowsAtIndexPaths:withRowAnimation or tableView reloadData.
[[CreditCardManager sharedCreditCardManager] removeCreditCard:creditCardToDelete]; [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; OR [[CreditCardManager sharedCreditCardManager] removeCreditCard:creditCardToDelete]; [self.tableView reloadData];更多推荐
删除UITableViewCell后,应用程序冻结
发布评论