gpt4 book ai didi

ios - 使用 Realm 搜索数组 (iOS)

转载 作者:行者123 更新时间:2023-11-29 10:22:54 26 4
gpt4 key购买 nike

你好,

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

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

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

但得到如下错误:RLMArray predicates must use aggregate operations

我认为问题在于, Realm 必须检查一个数组与一个数组是否匹配。在 SQL 中,我认为 JOIN-Operation 是一种很好的(不是很有效)的方式,但我在 NSPredicate 中找不到等效的操作。

谢谢你的每一个提示!

最佳答案

由于您不能在 Realm 中存储值数组,我猜想在那种情况下 MyObject 将具有与类 Feature 的一对多关系/列表属性,可以通过它们的 name 来标识。

CONTAINS 与 NSPredicate 一起使用,而不是您在此处查找的内容。这是 string comparison operator .

您可以使用 IN 运算符,如下所示:

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

注意:您不必担心性能,因为链接在 Realm 中是一等公民,这里不涉及昂贵的 JOIN 操作。

关于ios - 使用 Realm 搜索数组 (iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33943767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com