- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我有一个以下列方式启动的 NSFetchedResultsController:
NSEntityDescription *myEntity = [NSEntityDescription entityForName:@"MyEntity" inManagedObjectContext:managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:myEntity];
[fetchRequest setFetchBatchSize:10];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"wasDeleted == %@", [NSNumber numberWithBool:NO]]];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES selector:@selector(caseInsensitiveCompare:)];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sortDescriptor, nil]];
myFetchedResults = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:nil];
myFetchedResults.delegate = self;
[myFetchedResults performFetch:nil];
一些事实:
wasDeleted 是 MyEntity 的一个 NSNumber 属性 (BOOL)
如果我将此属性更新为 [NSNumber numberWithBool:YES]
,NSFetchedResultsControllerDelegate 会调用 didChangeObject 但触发 NSFetchedResultsChangeUpdate 而不是 NSFetchedResultsChangeDelete。
但是,如果我弹出 View 并再次初始化获取的结果 Controller ,则该对象不再存在,显示 [fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"wasDeleted == %@", [NSNumber numberWithBool:NO]]];
有效。
在此 NSFetchedResultsChangeUpdate 之后,当调用 cellForRow 时,我打印 wasDeleted 并将其设置为 YES。
这里有什么问题吗?
(换句话说,如果对象仍然存在于上下文中但不符合谓词,则可以调用 NSFetchedResultsChangeDelete?)
最佳答案
当然是 changeUpdate
而不是 changeDelete
。您只更新了一个值,并没有删除整个项目。如果您从数据库中删除该项目,它将调用 changeDelete
。并且它不会在新的 init 之后显示,因为您的表正在根据此属性进行过滤。
您需要监听 NSFetchedResultsChangeUpdate
并在那里检查属性 wasDeleted
是否已更改。如果是这样,请根据您的需要更新您的表格 View ,例如。删除特定行。
关于iphone - NSFetchedResultsChangeUpdate 被触发而不是 NSFetchedResultsChangeDelete,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14690681/
有人遇到过这种情况吗? 当我选择从 tableView(由 FRC 填充)中删除一行时,应用程序不会崩溃或挂起。它没有任何作用。删除按钮保持选中状态,如果我单击模拟器上的其他位置,删除按钮将取消选择并
Insert (NSFetchedResultsChangeInsert) 在我的后台线程中工作,在同一个线程中,使用相同的 managedObjectContext 保存合并通知,因此正确保存,删除
我有一个以下列方式启动的 NSFetchedResultsController: NSEntityDescription *myEntity = [NSEntityDescription entity
我有一个实现 NSFetchedResultsControllerDelegate 的 UITableViewController。在 - (NSFetchedResultsController *)
NSFetchedResultsController 有一些严重的问题,它有一个谓词。更新联系人属性的值后会出现此问题。这就是它的配置方式: NSEntityDescription *enti
我在 - (NSFetchedResultsController *)fetchedResultsController 里面有谓词以标准方式从 CoreDataBook 示例开始。 NSPredica
我是一名优秀的程序员,十分优秀!