我有一个非常奇怪的问题。我想从领域中检索具有给定id的对象。如果我这样做:
Array(realm.objects(MyClass.self).filter(NSPredicate(format:"id == %d",id))).first
我没有,没有物品。
但如果我这样做:
Array(realm.objects(MyClass.self)).filter{$0.id == id}.first
我得到了对象!!
我会避免检索所有对象然后手动过滤,我会使用RealmSwift中提供的过滤方法。这是我第一次遇到这个问题! 任何提示?
答案 0 :(得分:0)
首先,您应该使用%@
而不是%d
。其次,没有必要在NSPredicate
内创建filter
,您可以在那里简单地使用谓词语法。我们也无需将Results
转换为Array
。
realm.objects(MyClass.self).filter("id == %@",id).first