手势识别器滑动以从核心数据中删除
Posted
技术标签:
【中文标题】手势识别器滑动以从核心数据中删除【英文标题】:Gesture Recognizer Swipe to Delete From Core Data 【发布时间】:2014-04-10 03:26:06 【问题描述】:我正在开发一个使用核心数据的应用程序,我想添加一个手势,如果用户向左滑动它将删除数据库中的对象。我已经设置了所有手势识别器部件,但在创建从 tableview 和核心数据中删除对象的方法时遇到了麻烦。因此,如果有人能看到这一点并指出我正确的方向,我将不胜感激!谢谢!
TableView.M
-(void)swipeleft:(UISwipeGestureRecognizer*)gestureRecognizer
NSIndexPath *indexPath = [[self tableView] indexPathForSelectedRow];
NSManagedObjectContext *context = [self managedObjectContext];
// Delete object from database
[context deleteObject:[self.lists objectAtIndex:indexPath.row]];
// Remove list from table view
[self.lists removeObjectAtIndex:indexPath.row];
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
@end
错误:
self(ViewController *) 0x8ea0a90
indexPath=(NSIndexPath * ) nil
context+(NSManagedObjectContext *) 0x8d747f0
【问题讨论】:
你有什么问题?也许您只是忘记致电[context save:nil]
来保存您的更改?
好的,我添加了那行代码并添加了:[self.tableView reloadData];
然后它开始在这里崩溃:[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
当我评论说它有效时,我只需要对单元格褪色的动画进行一些处理删除时。
崩溃怎么办?说什么?引发了什么异常?
你在使用 NSFetchedResultsController 吗?如果你是,那么这就是 deleteRows 应该发生的地方。如果没有,你可以考虑;它可以解决很多问题。
当我删除该行时它正在删除对象,但是当我拥有它时它会崩溃。我用错误更新了问题。
【参考方案1】:
试试这个
-(void)swipeleft:(UISwipeGestureRecognizer*)gestureRecognizer
NSIndexPath *indexPath = [[self tableView] indexPathForSelectedRow];
NSManagedObjectContext *context = [self managedObjectContext];
// Delete object from database
[context deleteObject:[self.lists objectAtIndex:indexPath.row]];
[context save:nil];
// Remove list from table view
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
[self.lists removeObjectAtIndex:indexPath.row];
【讨论】:
[self.tableView deleteRowsAtIndexPaths:[self.lists objectAtIndex:indexPath] withRowAnimation:UITableViewRowAnimationFade];
这是导致它在我删除它时崩溃的行我很好我只是不再有滑动/删除动画。
收到另一个崩溃。
我仍然有这个问题。
你能给我崩溃日志吗?
检查这些链接discussions.apple.com/message/7461909#7461909***.com/questions/4186251/…以上是关于手势识别器滑动以从核心数据中删除的主要内容,如果未能解决你的问题,请参考以下文章
iOS 7 iPad:UIPageViewController 中的 UITableView 滑动删除(手势识别器冲突)