从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 = "" }