gpt4 book ai didi

ios - 删除 NSFetchedResultsController 中的对象

转载 作者:行者123 更新时间:2023-11-28 20:08:02 25 4
gpt4 key购买 nike

我需要一些关于以下问题的建议:

我正在为我的应用程序使用 iOS 主从应用程序模板,当我从主页面转到详细信息页面时遇到问题。我的问题是为什么 NSFetchedResultsChangeDelete 在 segueing 时被触发?

- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject
atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type
newIndexPath:(NSIndexPath *)newIndexPath
{
UITableView *tableView = self.tableView;
List *list = nil;

switch(type) {
case NSFetchedResultsChangeInsert:
[tableView insertRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
break;

case NSFetchedResultsChangeDelete:

[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];

break;

case NSFetchedResultsChangeUpdate:
[self configureCell:[tableView cellForRowAtIndexPath:indexPath] atIndexPath:indexPath];
break;

case NSFetchedResultsChangeMove:
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
[tableView insertRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
break;
}
}

但在我的情况下,我想执行以下操作,即当用户通过从右侧滑动表格单元格删除对象时,我也从服务器中删除对象,这在有单个表格 View 且没有 segueing 时效果很好。如果我阻止 NSFetchResutlsController 表单删除对象,当我继续查看下面的详细信息时,那么在从详细信息 View 返回后,表格 View 单元格不会响应我的点击事件。即表格不会继续,点击时没有任何反应,

任何人都可以指导这里出了什么问题吗?我应该如何正确实现此功能?

case NSFetchedResultsChangeDelete:
list = (List*)anObject;
BOOL visible = [self.navigationController.topViewController isKindOfClass:[RKGMasterViewController class]];

if(list.listSyncStatus == [NSNumber numberWithInt:1] && visible)
{
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
[self deleteDataFromServer:list];
}

最佳答案

好的,首先。 NSFetchedResultsController 不会删除任何内容。它根本不对数据存储进行任何更新。它所做的一切都是获取对象并观察变化。

听起来您将 tableview 删除行与从数据存储中删除某些内容混淆了。

你真的不应该改变 NSFetchedResultControllerDelegate 方法来做比更新表更多的事情。

但是,当用户滑动单元格并点击 Delete 时,您应该在后台线程上从核心数据存储中删除相关数据。您还应该(作为此过程的一部分)发送请求以从服务器中删除数据。

如果您在后台线程(和后台上下文)上执行删除操作,那么 NSFRC 将获取更改并为您从表中删除单元格。

关于ios - 删除 NSFetchedResultsController 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21332923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com