Ios 由多个关系创建的访问器方法是否与NSFetchedResultsController一样好?
我的问题与此类似: ios上典型的应用程序结构是通过表视图深入到数据中,许多应用程序模型都是分层的。例如,一个电影节可以有很多电影,可以有很多放映,可以有很多观众。如果我们使用核心数据来表示此模型,那么我们可以使用Ios 由多个关系创建的访问器方法是否与NSFetchedResultsController一样好?,ios,uitableview,core-data,nsfetchedresultscontroller,Ios,Uitableview,Core Data,Nsfetchedresultscontroller,我的问题与此类似: ios上典型的应用程序结构是通过表视图深入到数据中,许多应用程序模型都是分层的。例如,一个电影节可以有很多电影,可以有很多放映,可以有很多观众。如果我们使用核心数据来表示此模型,那么我们可以使用NSFetchedResultsController将胶片填充到UITableView中。使用NSFetchedResultsController极大地提高了性能和内存效率,并为观察底层数据的更改提供了内置支持。我想在我的项目中尽可能多地利用这一点 因此,如果我们有一个由这个swee
NSFetchedResultsController
将胶片填充到UITableView
中。使用NSFetchedResultsController
极大地提高了性能和内存效率,并为观察底层数据的更改提供了内置支持。我想在我的项目中尽可能多地利用这一点
因此,如果我们有一个由这个sweetNSFetchedResultsController
支持的电影表,并且用户选择一个电影来查看其放映列表,我们可以将该电影(NSManagedObject的子类)传递给一个新的UITableViewController
,并用电影的放映填充该表
我的问题的核心不是“我如何做到这一点?”而是问NSFetchedResultsController
的好处是否与NSManagedObject
一起传播。我可以使用谓词中的事件构建一个新的结果控制器,但我不需要。如果我将Film对象传递到一个名为Film
的变量中,并且我的对多关系被标识为screenings
,那么我相信我可以得到与该电影相关的一组屏幕,如下所示:
NSSet *filmScreenings = [film screenings];
如果我将该集合转换为一个数组,并将其用作支持新的筛选表视图的数据,我是否会失去NSFetchedResultsController
的好处?我的直觉告诉我是的,尤其是对监控变化的支持——但苹果文档中的一个常见问题让我再次猜测,并询问整个社区。检查题为“我从实体a到实体B有一对多的关系…”
那么,我是应该使用该访问器方法,还是应该构建一个新的
NSFetchedResultsController
?这样做(例如批量获取和更改监控)会失去NSFetchedResultsController
的好处,因为您将用一个简单的NSArray
来代替它。您最好将胶片
传递给详细信息控制器,并在NSFetchRequest
的谓词中使用此胶片
构造一个NSFetchedResultsController
,这正是我最后要做的,并且只在不需要如此优化的较小数据集上使用访问器方法。谢谢你直截了当的回答!