使用领域(iOS)搜索阵列

使用领域(iOS)搜索阵列,ios,nspredicate,realm,Ios,Nspredicate,Realm,你好 我有一个关于查询领域数据库的问题。我有领域对象,它包含RLMArray中的功能。我想从给定数组中查找包含所有特征的所有对象。 在另一种情况下,我想找到所有具有一个特征的对象 我尝试过这样的事情(也有IN): 但会出现如下错误:RLMArray谓词必须使用聚合操作 我认为问题是,这个领域必须检查一个数组与一个数组进行匹配。在SQL中,我认为联接操作是一种很好(不是很有效)的方法,但在NSPredicate中找不到等效的操作 谢谢你的每一个提示 由于无法在领域中存储值数组,我猜在这种情况下,M

你好

我有一个关于查询领域数据库的问题。我有领域对象,它包含RLMArray中的功能。我想从给定数组中查找包含所有特征的所有对象。 在另一种情况下,我想找到所有具有一个特征的对象

我尝试过这样的事情(也有IN):

但会出现如下错误:
RLMArray谓词必须使用聚合操作

我认为问题是,这个领域必须检查一个数组与一个数组进行匹配。在SQL中,我认为联接操作是一种很好(不是很有效)的方法,但在NSPredicate中找不到等效的操作


谢谢你的每一个提示

由于无法在领域中存储值数组,我猜在这种情况下,
MyObject
将具有类
功能的一个对多关系/列表属性,该属性可能由它们的
名称来标识

CONTAINS
与NSPredicate在一起,而不是您在这里寻找的内容。这是一个很好的例子

您可以在
中使用
,如下所示:

NSArray *featureArray = @[@"feature1", @"feature2"];
RLMResults* containedObjects = [MyObject objectsWhere:@"features.name IN %@", featureArray];
注意:您不必担心性能,因为链接是领域中的一级公民,这里不涉及昂贵的连接操作

NSArray *featureArray = @[@"feature1", @"feature2"];
RLMResults* containedObjects = [MyObject objectsWhere:@"features.name IN %@", featureArray];