我已将CoreData中的代码移植到Realm,除了最后一期之外,一切都很顺利。
使用RealmOptional时的过滤是删除所有值等于nil的对象。
例如,.filter("price <= 10.0")
正在从结果集中删除价格为零的所有对象。当使用NSFetchedResultsController和NSPredicates时,CoreData中没有发生这种情况,所以我想知道这是否是Realm的预期行为?
对象与以下示例中的RealmOptional<Double>
一样:
class Product : Object, Mapper
{
var price = RealmOptional<Double>() {
// Using ObjectMapper library to map JSON to Realm hence willSet
willSet {
self.price = newValue
}
}
}
我希望结果会返回价格<1的所有Products
10.0包括那些没有值的那些。
这是预期的行为还是只是一个错误?
答案 0 :(得分:3)
如果使用数字比较运算符进行过滤是预期的行为,则不包括具有空值的对象。如果您想要包含OR price = nil
为price
的对象,则可以添加nil
。如下所示:
let free_or_cheap_products = realm.objects(Product)
.filter("product <= 10 || product = nil")