Ios 不同企业的核心数据搜索

Ios 不同企业的核心数据搜索,ios,search,core-data,Ios,Search,Core Data,我在应用程序中使用搜索控制器。用户输入一个单词,我返回一个核心数据实体列表,每个实体都有一个包含该单词的标题。那很容易 但我还想在列表的底部返回其他实体,它们的标题是搜索词,并且与我首先搜索的实体有很多关系 因此,如果我在标题中找不到搜索词,我想搜索与第一个实体类型相关的实体的标题 使用单个NSPredicate是否可以实现这一点 这是我的核心数据模型 您有两种类型的实体:术语和部分。您希望列表的结构如下所示: 首先是所有术语实体的标题==title 然后是所有零件实体的标题==title

我在应用程序中使用搜索控制器。用户输入一个单词,我返回一个核心数据实体列表,每个实体都有一个包含该单词的标题。那很容易

但我还想在列表的底部返回其他实体,它们的标题是搜索词,并且与我首先搜索的实体有很多关系

因此,如果我在标题中找不到搜索词,我想搜索与第一个实体类型相关的实体的标题

使用单个NSPredicate是否可以实现这一点

这是我的核心数据模型


您有两种类型的实体:
术语
部分
。您希望列表的结构如下所示:

  • 首先是所有
    术语
    实体的
    标题
    ==title
  • 然后是所有
    零件
    实体的
    标题
    ==title

如果这是正确的,您将无法使用一个
NSFetchRequest
获取列表的两部分。最简单的方法是执行两个单独的抓取,然后将第二个列表附加到第一个列表。如果您向数据中添加更多的结构,您可能能够在一个奇特的请求中完成这一点,但据我所知,这并不值得。如果你有大量的数据,你当然应该想一些聪明的方法来索引它。

作为一种旁白,你不应该使用单向关系。它们对性能有害,Xcode应该通过警告向您发出警告。不要忽视警告

对于搜索,我会按照@Felixyz所说的,两次抓取并合并结果。如果数据变得庞大,那么您将希望将“搜索标题”拆分为一个具有关系的单独对象,然后仅对其进行搜索

但是要修复你的关系。即使您从未使用过它们,核心数据也会