具有自定义排序顺序的UISearchDisplayController / NSFetchedResultsController

时间:2013-04-23 12:22:54

标签: ios cocoa-touch nsfetchedresultscontroller uisearchdisplaycontroller nssortdescriptor

我在我的应用中实现了搜索功能。我希望用户在给定实体的多个属性中同时查找单词。

以下是具有3个字符串属性的实体的示例: (firstName,lastName,notes)

让我们使用一个包含3个人的模拟数据集:

  • " Emily"," Bridges","她很快就会出现在城里。"
  • " Johnny"," Williams","这个家伙真的很酷。"
  • " Will"," Smith","他出于某种原因不记得任何事情。"

现在,让我们假设用户正在查找"将" ,并且我们运行不区分大小写的搜索。所有三个先前描述的人都将匹配单词" will"感谢使用或者PrediseWithSubpredicates

理想情况下,我希望结果按此顺序显示以用于相关性目的:

  • " Will"," Smith","他出于某种原因不记得任何事情。"
  • " Johnny"," Williams","这个家伙真的很酷。"
  • " Emily"," Bridges","她很快就会出现在城里。"

对于此搜索功能" firstName"比" lastName"更相关哪些都比"注释更为相关"属性。

由于我使用的是UISearchDisplayController,我还使用 NSFetchedResultsController ,这需要 NSSortDescriptor 。我现在的问题是我将使用什么属性/键来初始化NSSortDescriptor?

我已经经历了很多帖子,并认为瞬态属性可以帮助我解决这个问题,但我无法弄清楚如何/何时设置这个瞬态属性,可以命名为& #34; SORTKEY"并设置为这些值:

  • 1:匹配" firstName"
  • 2:匹配" lastName"
  • 3:匹配"笔记"

最终我想我可以尝试运行三个不同的请求但是我不得不放弃使用NSFetchedResultsController及其所有魔法...

我不知道我是否达到了NSFetchedResultsController的限制,但任何指针都会很棒,谢谢!

乔丝。

0 个答案:

没有答案