【发布时间】:2011-10-06 12:31:54
【问题描述】:
如果您查看 Matt Gallagher 的 Cocoa With Love 博客,他在新的 a beautiful retake on UITableView 上进行了精彩的讨论(带有示例代码)......在帖子中,他谈到了动画和异构细胞的诸多好处,等等。然而,他列出的限制之一对我来说有点阻碍。它不适用于 NSFetchedResultsController。将数据加载到单元格中的设计假定所有数据都是静态的并且可以立即使用。但是,如果您正在构建一个包含许多行的表,并且您的数据由 Core Data 中的对象组成,那么如果您能够访问 FRC 的缓存和动态加载功能,您的视图控制器可能会受益匪浅。
我的问题:有没有人努力重新分配他重新审视的 UITableView 设计以与 NSFetchedResultsController 一起使用?如果有人已经完成(或正在开发),我很乐意(喜欢)在我的工作中尝试它,甚至帮助开发它。
【问题讨论】:
-
+1 提出一个好问题。不知道你到底需要什么,但如果你正在寻找延迟加载/缓存单元格,你可以查看 Enormego 的人的 EGOImageLoading。 Github 在这里github.com/enormego/EGOImageLoading
-
好吧,让我再解释一下。我的每个单元格实际上都由一个核心数据对象支持。实际上有很多很多核心数据对象(将它们视为人员,地图或日历事件的数据库记录......实际上,我在核心数据中拥有所有这些东西,每一个都由某处表格中的一个单元格表示在我的应用程序中)。我使用核心数据的唯一原因是因为它负责管理那些大量数据,通过它进行搜索,只加载节省内存所需的内容。 FRC 是表格视图单元格和要加载的数据之间的粘合剂。
-
那么回到您的回复@jesse ...我喜欢 EGOImageLoading,但我并不真正担心图像...这是单元格中其余信息背后的数据。
-
也许我遗漏了一些重要的东西,但遵循 MVC 指南不是很简单吗?您将有一个来自 CoreData 的数据对象和一个视图对象(在本例中是来自 cocoawithlove 的那个)。在数据更改时,您调用
FetchedResultsController-Delegate 并使用存储在数据对象中的值更新视图对象。 -
您能否详细说明您希望避免 Gallagher 的方法是什么?在我看来,它与标准方法的区别在于它将数据视为静态数据。 (顺便说一句,如果您可以访问 iOS5 测试版和 WWDC2011 视频,请看一下;UITableView 中添加了很多内容。)
标签: iphone uitableview core-data nsfetchedresultscontroller