我已经将代码从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")