获取包含参数的 Realm 对象
Posted
技术标签:
【中文标题】获取包含参数的 Realm 对象【英文标题】:Fetch Realm objects that contain parameter 【发布时间】: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”。关于为什么我没有得到结果的任何想法?
【问题讨论】:
【参考方案1】:您需要针对Restaurant
类本身执行搜索查询;不是Database
。 Realm 使用您指定的类来确定在哪个表中应用查询。
顺便说一句,您还可以将NSPredicate
查询与+[RLMObject objectsWhere:]
内联,因此无需创建单独的NSPredicate
对象(除非您有特定原因)。 :)
RLMResults *restaurants = [Restaurant objectsWhere:@"url CONTAINS '%@'", @"testingthis"];
如果您尝试查询不在默认领域中的Restaurant
对象,那么您也可以使用+[RLMObject objectsInRealm: where:]
来显式控制您要查询的数据库。
【讨论】:
抱歉,不清楚这一点。 “数据库”是实际存储“餐厅”的类的名称。 (我知道,遗留问题,我只是在更新一些不属于我的东西。)无论如何,问题是我没有为 Realm 设置正确的 fileURL。不过感谢您的帮助!以上是关于获取包含参数的 Realm 对象的主要内容,如果未能解决你的问题,请参考以下文章
NSPredicate 使用 RLMResults 作为参数