Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 多对多关系中的核心数据搜索_Ios_Search_Core Data_Nspredicate - Fatal编程技术网

Ios 多对多关系中的核心数据搜索

Ios 多对多关系中的核心数据搜索,ios,search,core-data,nspredicate,Ios,Search,Core Data,Nspredicate,我是新的核心数据,我有一些麻烦,我的搜索 我的数据结构如下所示: Server --one-to-many--> Category --many-to-many--> Cube 我的想法是获取服务器对象,获取server.category集并绘制其立方体 现在我需要在这个模型中搜索。我想按多维数据集名称搜索并获取: 包含此名称或名称包含此单词的多维数据集的类别的服务器对象 我试着这样做: NSPredicate * defaultPredicate = [NSPre

我是新的核心数据,我有一些麻烦,我的搜索

我的数据结构如下所示:

Server   --one-to-many-->   Category   --many-to-many-->   Cube
我的想法是获取服务器对象,获取server.category集并绘制其立方体

现在我需要在这个模型中搜索。我想按多维数据集名称搜索并获取:

包含此名称或名称包含此单词的多维数据集的类别的服务器对象

我试着这样做:

NSPredicate * defaultPredicate = [NSPredicate predicateWithFormat:@"ANY SELF.defaultFlag = %@ AND ANY SELF.category.cube.title = %@", [NSNumber numberWithInt:1], text];
但它给我一个

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'multiple to-many keys not allowed here'
如何做到这一点

编辑:

例如,如果我有: 一台服务器DemoServer包含3个类别Category1、Category2、Category3,这些类别分别有3个多维数据集Test、cube11、cube12、cube21、cube22、cube23、Test、Cube32、Test

我搜索:我想得到的测试立方体标题


DemoServer有两个类别Category1、Category3,这些类别将包含多维数据集Test、Test、Test

谓词,其中嵌套了多个关系,这有点复杂。 明显谓词

[NSPredicate predicateWithFormat:@"ANY category.cube.title = %@", text]
如果类别和多维数据集都是多对多关系,则不起作用

您需要的是一个子查询:

[NSPredicate predicateWithFormat:@"SUBQUERY(category, $cat, ANY $cat.cube.title = %@).@count > 0", text]
与其他谓词结合使用:

[NSPredicate predicateWithFormat:@"defaultFlag = %@ AND SUBQUERY(category, $cat, ANY $cat.cube.title = %@).@count > 0",
        [NSNumber numberWithInt:1], text]

@MarkoZadravec:它就像子查询的局部变量$cat依次设置为每个相关类别元素。不幸的是,子查询几乎没有文档记录,所以这个问题一点也不愚蠢:-谢谢,还有两个问题。现在它没有崩溃,但根本找不到行,第二个问题是,在任何SELF.defaultFlag=%@和前面都不起作用SUBQUERY@MarkoZadravec:什么是defaultFlag?它是服务器的一个属性吗?为什么在这里使用任何?是defaultFlag是服务器的属性。我认为ANY是必需的,所以我会查询所有带有defaultFlag==1的服务器。所有我的查询看起来像“选择不同的0,t0.Z_PK,t0.Z_OPT,t0.ZDEFAULTFLAG,t0.ZHOST,t0.ZNAME,t0.ZPASSWORD,t0.ZPORT,t0.ZPROTOCOL,t0.ZSERVERID,t0.ZTOKEN,t0.ZUSERNAME从ZSERVER t0中选择COUNTt1.Z_PK从ZCATEGORY t1中选择JOIN Z_1CUBE t2在t1.Z_PK=t2.Z_1CATEGORY在t2.Z_2CUBE=t3.Z_PK中选择COUNTt1.Z_PK=t1.ZSERVER和t3.ZTITLE=?>?'