我已经将代码从CoreData移植到Realm,除了最后一期之外,一切都很好。
使用RealmOptional时的过滤是删除所有值等于nil的对象。
例如,.filter("price <= 10.0")正在从结果集中删除所有价格为零的对象。当使用NSFetchedResultsController和NSPredicates时,CoreData中没有发生这种行为,所以我想知道这是否是Realm的预期行为?
在下面的示例中,对象如下所示:

class Product : Object, Mapper
{
    var price = RealmOptional<Double>() {
        // Using ObjectMapper library to map JSON to Realm hence willSet
        willSet {
            self.price = newValue
        }
    }
}

我希望结果返回所有价格RealmOptional<Double>,包括那些值为零的Products
这是预期的行为还是仅仅是一个bug?

最佳答案

如果按数值比较运算符进行筛选是预期行为,则不包括具有空值的对象。如果希望包含OR price = nil所在的对象,可以添加price。如下所示:

let free_or_cheap_products = realm.objects(Product)
    .filter("product <= 10 || product = nil")

08-04 13:59