【问题标题】:Searching CoreData using NSFetchedResultsController and Search Display Controller使用 NSFetchedResultsController 和 Search Display Controller 搜索 CoreData
【发布时间】:2012-05-03 22:18:39
【问题描述】:

这可能是一个简单的问题,但是经过大量搜索后,我仍然对正确答案感到有些困惑。

我有一个使用 Core Data 的应用程序和一个由 NSFetchedResultsController 填充的 UITableView。我想在表格视图的顶部添加一个搜索栏,并使用搜索栏和搜索显示控制器过滤表格视图中的数据

我想知道这样做的正确方法是什么?

每次搜索词更改时,我见过的大多数示例都会修改 NSFetchRequest 谓词?这似乎会给所有请求增加很多开销

苹果的例子似乎只处理基于数组搜索tableview结果。

我是否应该基于 fetchedObjects 创建一个数组并在该数组上搜索并将过滤后的结果放入另一个数组中。

提前致谢 马特

【问题讨论】:

标签: iphone objective-c ios core-data nsfetchedresultscontroller


【解决方案1】:

不要过早优化。

更改获取请求的谓词。 NSFetchResultsController 非常适合减少对 CoreData 的访问。

一旦你让它工作,使用仪器来隔离任何性能问题。

如果您自己搜索对象数组,则必须将每个对象都放入内存中,然后搜索所有对象。是的,你仍然需要搜索它们,但是让 CoreData 来做,因为它几乎总是更快。

编辑

关于 iOS 应用程序开发的斯坦福 iTunes U 课程是免费视频指导的不错选择。 Ray Wenderleich 在这里有一个很好的 NSFetchedResultsController 教程:http://www.raywenderlich.com/999/core-data-tutorial-how-to-use-nsfetchedresultscontroller

【讨论】:

  • 你知道任何关于 NSFetchResultsController 和搜索的良好实现的好的 stackover 答案或网络教程吗?
  • 感谢您的评论,我已经是这两种资源的忠实粉丝,但据我所知,它们不包括搜索和 NSFetchResultsController。
  • 看看 Apple WWDC 12 关于核心数据的会议
  • @NikitaPestrov 你在看哪个会话? 2010 年还是 2011 年核心数据会议? WWDC 12 尚未举行,谢谢。
猜你喜欢
  • 2012-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-13
相关资源
最近更新 更多