从Realm Results转换为Array会产生空对象
当我尝试从Results转换为Swift Array时,属性是默认值。
所以我想说我写一个这样的Request
对象:
let realm = try! Realm() try! realm.write { realm.add(request, update: true) }
然后当我从Realm这样读它们时:
let realm = try! Realm() let requestsFromRealm = realm.objects(Request.self)
我得到的结果很好。 我需要将Results对象转换为Array。 我做的:
let requests = Array(requestsFromRealm)
请求对象在那里,但属性是默认值。 奇怪的是,当我用po
检查控制台上的值时,我可以看到它们。
尝试这个:
let realm = try! Realm() let requestsFromRealm = realm.objects(Request.self) let requests = requestsFromRealm.toArray()
使用此扩展程序:
extension Results { func toArray() -> [T] { var array = [T]() for result in self { array.append(result) } return array } }
let requests = Array (requestsFromRealm)
我认为这段代码没有问题。
Realm Object的属性中是否缺少“动态”?
class Request: Object { dynamic var body: String = "" }