2

我想使用 NSFetchedResultsController 制作顺序过滤器。目标是首先显示更相关的结果。

例如:实体人:姓名 - 国家

1) 搜索字符串中包含姓名的人员。
2)国家包含搜索字符串的人。

通过顺序,我的意思是我想首先获得搜索结果 1),然后是 2)。

我不知道这样做的正确方法,因为您使用 1 NSFetchRequest 初始化 NSFetchedResultsController。但在这里,我需要 2 个 NSFetchRequest。使用 2 个请求的另一个问题是我可以使用第二个请求生成重复的项目。

是否可以使用 NSFetchedResultsController 来处理?

谢谢

这是一个例子:

  • 记录1:姓名:彼得国家:毛里求斯

  • 记录 2 : 名称 : Marc 国家 : 毛里塔尼亚

  • 记录 3 : 名称 : Maureen 国家 : 比利时

如果用户在搜索栏中输入“ma”:

我想先显示名称结果,然后显示国家/地区结果。

所以在这里,结果将按以下顺序排列:

  1. 马克(“MA”rc)
  2. 莫琳(“MA”ureen)
  3. 彼得(“MA”uritius)
4

1 回答 1

1

这里发生了两件不同的事情:过滤和排序。

你可以通过调用setSortDescriptors你的 NSFetchRequest 来进行排序。它采用一组排序描述符,每个描述符对应于名称或国家或其他任何内容。

过滤是通过谓词完成的。setPredicate:在您的 NSFetchRequest 上使用。你只能得到一个谓词,但它可以有多个使用 and 和 or 的条件。

于 2011-02-26T22:35:37.877 回答