在Realm中的Integer字段上过滤

时间:2019-06-26 13:01:07

标签: java realm

如果对象中的id属性的类型为Integer,如何过滤查询以返回其id包含查询一部分的所有对象。也就是说,整数对应的Realm contains过滤器运算符是什么?

例如object1id:1234。如果我查询123,那么它应该返回object1。接近整数的唯一可用过滤器是equalTo,但要使其正常工作,我必须将1234传递给查询。

3 个答案:

答案 0 :(得分:1)

可能您需要添加将id表示为String的帮助者字段,并根据该字段查询contains()

答案 1 :(得分:1)

您需要将Integer字段更改为String,然后才能通过这种方式从Realm进行过滤

realm.where(YourRealmModel.class).contains("id","123").findAll()

答案 2 :(得分:0)

您似乎正在尝试通过其主ID ID访问对象。您可以使用以下代码直接访问该对象,而无需查询。假设我们有一个DogClass:

class DogClass: Object {
    @objc dynamic var id = NSUUID().uuidString
    @objc dynamic var dog_name = ""

    override static func primaryKey() -> String? {
        return "id"
    }
}

let realm = try! Realm()
let primaryKey = 123
guard let thisDog = realm.object(ofType: DogClass.self, forPrimaryKey: primaryKey) else { return }
print(thisDog.dog_name)