【问题标题】:Fetch Realm objects that contain parameter获取包含参数的 Realm 对象
【发布时间】:2016-11-10 21:50:40
【问题描述】:

我有一个领域数据库,其中填充了具有 url 参数的 Restaurant 对象。我想获取 url 包含用户在UITextField 中键入的内容的对象。

NSPredicate *pred = [NSPredicate predicateWithFormat:@"url CONTAINS '%@'", self.searchQuery];
RLMResults<Database *> *results = [Database objectsWithPredicate:pred];

if ([results count] == 0) {
    NSLog(@"results count == 0");
    return nil;
}

现在,当我运行它时,我总是得到 0 个结果。尽管我有两个示例条目具有“http://www.testingthis.com”作为 url,并且搜索查询是“testingthis”。关于为什么我没有得到结果的任何想法?

【问题讨论】:

    标签: ios objective-c realm


    【解决方案1】:

    您需要针对Restaurant 类本身执行搜索查询;不是Database。 Realm 使用您指定的类来确定在哪个表中应用查询。

    顺便说一句,您还可以将NSPredicate 查询与+[RLMObject objectsWhere:] 内联,因此无需创建单独的NSPredicate 对象(除非您有特定原因)。 :)

    RLMResults *restaurants = [Restaurant objectsWhere:@"url CONTAINS '%@'", @"testingthis"];
    

    如果您尝试查询不在默认领域中的Restaurant 对象,那么您也可以使用+[RLMObject objectsInRealm: where:] 来显式控制您要查询的数据库。

    【讨论】:

    • 抱歉,不清楚这一点。 “数据库”是实际存储“餐厅”的类的名称。 (我知道,遗留问题,我只是在更新一些不属于我的东西。)无论如何,问题是我没有为 Realm 设置正确的 fileURL。不过感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 2014-08-28
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    相关资源
    最近更新 更多