【问题标题】: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 应该发生的地方。如果没有,你可以考虑;它可以解决很多问题。
  • 当我删除该行时它正在删除对象,但是当我拥有它时它会崩溃。我用错误更新了问题。

标签: ios objective-c uitableview core-data uigesturerecognizer


【解决方案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];
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-20
  • 1970-01-01
  • 2016-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多