删除UITableViewCell后,应用程序冻结 [英] App freezes after deleting UITableViewCell
本文介绍了删除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后,应用程序冻结的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文