Iphone NSFetchedResultsController的替代方案?
目前我有一个Iphone NSFetchedResultsController的替代方案?,iphone,objective-c,ios,core-data,Iphone,Objective C,Ios,Core Data,目前我有一个UITableView,其数据源是一个NSFetchedResultsController。NSFetchedResultsController所做的最重要的事情是,如果有任何更改,通过委托方法自动更新我的表。但是,我不再需要通过提取来获取实体,现在将其称为“Pictures”。我有另一个名为文件夹的实体,文件夹与图片有关系,因此每个文件夹都有一个NSSet图片 因此,现在我不必获取属于某个文件夹的所有图片,而只需执行文件夹.pictures,这将返回我需要的内容,我可以将其分配给数
UITableView
,其数据源是一个NSFetchedResultsController
。NSFetchedResultsController所做的最重要的事情是,如果有任何更改,通过委托方法自动更新我的表。但是,我不再需要通过提取来获取实体,现在将其称为“Pictures”
。我有另一个名为文件夹
的实体,文件夹
与图片
有关系,因此每个文件夹
都有一个NSSet图片
因此,现在我不必获取属于某个文件夹的所有图片
,而只需执行文件夹.pictures
,这将返回我需要的内容,我可以将其分配给数组并将其设置为我的tableView
源。但是,这并不像NSFetchedResultsController
那样自动更新表
我的问题是如何在不执行fetch的情况下拥有NSFetchedResultsController
(即自动更新表的委托方法)的功能?我不需要再提取了,因为我有一个NSSet
,其中包含所需的NSManagedObjects
获取的结果控制器有什么问题?只需保留它,并对关系集使用点表示法,您就可以两全其美
获取结果控制器的真正优势实际上是隐藏的。它将获取您的对象(文件夹
),但可能不会获取所有关系属性(图片
)。这被称为断层作用。这意味着,如果需要,核心数据将在后台获取数据。它是自动优化的速度和良好的内存使用。例如,数据源中潜在的巨大数组不必一次全部存储在内存中,这对于数组来说是不可避免的
因此,你真的不想摆脱FRC。她是你的朋友。对她保持忠诚 等等,有没有一种方法可以获取一整套实体?嗯,是的,与其他方法完全相同。假设您已经为tableview的一行获取了一个文件夹
的实例-现在您可以像往常一样简单地访问文件夹.图片
。因此,我的“获取结果”控制器将只有一个对象,即文件夹,对于我的表视图行数,我将执行文件夹.图片.计数?我以为您有许多文件夹,每个表行一个。在这种情况下,请告诉“获取结果”控制器取回图片。按带有NSPredicate
的文件夹进行限制。