我无法在任何地方找到问题的答案。
我是否可以在函数内创建Realm
实例,获取一些对象并返回这些对象?这是否会导致对象的Realm
被释放,如果是,那么我的对象是否会失效?或者对象会保留Realm
直到它们被释放?
func getObject() -> MyObject {
let realm = try! Realm()
return realm.objects(MyObject.self).first!
}
let object = getObject()
object.isInvalidated // What will this return?
答案 0 :(得分:2)
在提出这个问题后,我亲自测试了这个。
Object
确实似乎保留了它的境界。在问题的示例中,对象未失效且object.realm
不是nil
。您可以创建Realm
实例并返回Realm
的对象,而不保留Realm
。一旦Realm
中的所有对象都被释放,Realm
也应该被释放。