草庐IT

NSFetchedresultscontroller

全部标签

objective-c - NSFetchedResultsController 缺少一些对象

我遇到了一个奇怪的问题,NSFRCfetchedObjects数组没有返回它应该返回的所有对象。为了给你一些上下文,我的应用程序有几个ListViewController,每个都有一个NSFRC。我正在更新委托(delegate)方法controllerDidChangeContent中的ListView。我面临的问题如下:在后台MOC中存储一个对象并保存它之后,controllerDidChangeContent被调用,但我刚刚保存在后台线程中的对象没有出现在NSFRC中。这是我用来检查的一段代码:-(void)controllerDidChangeContent:(NSFetche

iphone - 如何使用 NSOrderedSet 的顺序对 NSFetchedResultsController 的结果进行排序

NSOrderedSets保存表中对象的顺序。如果您访问具有NSOrderedSet属性的NSManagedObject子类实例,那么它们将是有序的。但是,在创建NSFetchRequest时似乎无法使用NSSortDescriptor访问该订单。从原始SQLite数据库看来,订单存储在名为Z_FOK_的字段中.数据可用,但似乎无法通过核心数据API看到。有谁知道编写NSSortDescriptor的方法,该NSSortDescriptor将与SQLite数据库一起使用以按NSOrderedSet指定的顺序返回结果?更新相关问题:NSFetchedResultsControlleran

objective-c - 如果更改某些属性,我是否需要手动保存 NSFetchedResultsController 的 managedObjectContext?

我正在使用NSFetchedResultsController来填充和管理我的表数据源。当用户选择某一行时,会弹出一个操作表,然后让用户更改该行的值:NSManagedObject*managedObject=[fetchedResultsControllerobjectAtIndexPath:selectedRowIndexPath];[managedObjectsetValue:statusforKey:@"status"];这非常有效,我可以立即在表格View中看到更改。这意味着NSFetchedResultsController知道有什么改变了,因此重新加载那个tablevie

ios - NSFetchedResultsController - TableView 中的不完整 UI 更新

我正在使用NSFetchedResultsController来刷新TableView的数据。数据本身是通过在后台运行的XML解析器提供的。解析器完成后,它将数据保存到自己的上下文中。NSFetchedResultsController立即获取这些更改并开始为每个更新的元素调用-(void)controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:委托(delegate)方法。这也很快,并且在日志文件中看起来完全正常。但是,在-(void)controllerDidChangeContent:中,我调用了UITa

iphone - 为 NSFetchedResultsController 动态设置 fetchLimit

我正在使用NSFetchedResultsController将数据填充到UITableView上。这是一个简单的聊天应用程序,我想首先将最新的25条消息加载到表格中,然后在用户向上滚动以查看较旧的消息时加载更多消息(聊天消息按升序排列)。我为willDisplayCell:中的NSFetchedResultsController调用了一个方法setFetchLimit:就像这样......-(void)tableView:(UITableView*)tableViewwillDisplayCell:(UITableViewCell*)cellforRowAtIndexPath:(NS

ios - 同时移动和更新 UITableViewCell 和 NSFetchedResultsController

我有一个包含1个部分和2行的简单表格View。我正在使用NSFetchedResultsController使表与CoreData保持同步。我对CD中的其中一行进行了更改,这会触发要更新和移动的TableView单元格。问题在于,当cellForRowAtIndexPath:在NSFetchedResultsChangeUpdate期间被调用时,会返回错误的单元格(这是有道理的,因为单元格尚未移动)。因此,使用新更新的数据更新了错误的单元格。之后处理NSFetchedResultsChangeMove消息,以便单元格交换位置(两个单元格的内容都没有更新,因为它只是一个移动调用)。结果是

ios - NSFetchedResultsController 复杂的获取请求和模型

我正在尝试针对这种情况设计我的CoreData模型:我们有Song对象,它与一些List有一对多的关系。每个List都有name属性并且和Song有一对多的关系之所以需要这些多对多关系,是因为一首Song可以同时出现在每个List中。我需要使用NSFetchedResultsController(因为用户可能有10,000歌曲,我不想将它存储在NSArray中的某个地方。当我尝试为sectionNameKeyPath:设置一些值时,例如@"List.name"我有一个错误“不允许多对多关系”,当然这是有道理的。所以我需要帮助如何设计我的模型,使其能够拥有Song和一些List,例如“H

objective-c - 让 NSFetchedResultsController、NSSortDescription 和 sectionNameForKeyPath 协同工作

我目前正在开发一个具有多个实体和关系的应用程序,如下图所示:项目类别。我目前正在获取Item实例并使用项目的category.name在部分中显示它们。在这种情况下,我可以使用排序描述符按名称对类别进行排序,这非常简单并且工作正常(下面的相关代码):-(NSFetchedResultsController*)fetchedResultsController{if(fetchedResultsController_!=nil)returnfetchedResultsController_;NSManagedObjectContext*moc=[order_managedObjectCon

ios - NSFetchedResultsController 是否观察持久存储的所有更改?

我的程序确实像下面的链接一样工作:UpdateresultsofNSFetchedResultsControllerwithoutanewfetch将NSFetchedResultsController的结果显示到UITableView从网络服务获取新对象并将其存储到核心数据(在同一个ViewController中,使用RestKit)使用NSFetchedResultsController委托(delegate)的通知更新TableViewNSFetchedResultsControllerDelegate的实现是从Apple的CoreData项目中复制的,我的预测是:[NSPred

ios - 为什么 NSFetchedResultsController 的 fetchedObjects 数组并不总是同质的

为了不掩盖真相,我将首先提出我的核心问题:为什么我的NSFetchedResultsController的fetchedObjects数组通常是同构的,但在极少数情况下包含__NSCFString它应该包含哪些托管对象?我有一个已经投入生产很长时间的应用程序。它的主视图是一个表格View,其中包含一个视频列表,由核心数据管理对象支持。TableViewController使用NSFetchedResultsController配置相当普通NSFetchRequest:NSFetchRequest*request=[[NSFetchRequestalloc]initWithEntityN