Swift 使用NSPredicate引用其他NSPredicate规则

Swift 使用NSPredicate引用其他NSPredicate规则,swift,core-data,nspredicate,Swift,Core Data,Nspredicate,假设我有一个NSPredicate规则的核心数据数据库 我的数据库如下所示 +------+-----------+ | Type | Content | +------+-----------+ | 0 | Hello | | 1 | end | | 2 | somevalue | | 0 | end | +------+-----------+ 我有一个内容,到此为止。如何查询核心数据以检查是否有任何规则满足此内容?它应该在表中找

假设我有一个NSPredicate规则的核心数据数据库

我的数据库如下所示

+------+-----------+
| Type |  Content  |
+------+-----------+
|    0 | Hello     |
|    1 | end       |
|    2 | somevalue |
|    0 | end       |
+------+-----------+
我有一个内容,到此为止。如何查询核心数据以检查是否有任何规则满足此内容?它应该在表中找到第二个条目

+------+-----------+
| Type |  Content  |
+------+-----------+
|    1 | end       |
+------+-----------+
但我不应该找到

+------+-----------+
| Type |  Content  |
+------+-----------+
|    0 | end       |
+------+-----------+
因为这句话的结尾不是开头


目前,我正在获取所有值,创建包含内容和类型的谓词,并再次查询数据库,我认为这是一个很大的开销。

您现在这样做的方式是正确的。首先需要构建谓词,在本例中,这是一个非常复杂的操作,还需要获取并运行每个谓词,以查看哪个谓词匹配


我不会这么快就认为这会带来巨大的开销。如果你的数据集很小,你只有3种类型吗?我现在有3种类型,但我计划增加类型。我猜你想建议,检查所有3种类型,并检查是否有匹配?但这也是一个小表,我还有其他谓词属性,比如不区分大小写等等,我不太明白。您是否有一个或两个数据库,其中一个是价值数据库和内容数据库?您要查询哪个数据库?我有一个包含NSPredicate规则(如BEGINSWITH、ENDSWITH)的数据库,其中包含我要查询数据库中的所有规则,以确定是否有符合内容的NSPredicate规则。我将在内存中加载规则,为每个规则创建或存储/加载谓词,并使用块筛选规则。另一个不知道是否可行的想法是:向数据库中添加一个正则表达式,并使用类似“This is end”的谓词匹配contentRegex。感谢您的详细回答。我不能为此使用NSFetchedResultsController,因为它是一个实用方法,内容进来,结果出来。我希望通过一些很酷的SQL技巧或使用SELF子查询或其他引用自身的方法找到答案。
+------+-----------+
| Type |  Content  |
+------+-----------+
|    0 | end       |
+------+-----------+