当我尝试从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
检查控制台上的值时,我可以看到它们。
答案 0 :(得分:3)
试试这个:
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
}
}
答案 1 :(得分:0)
let requests = Array (requestsFromRealm)
我认为此代码没有问题。
Realm Object的属性中是否缺少“动态”?
class Request: Object {
dynamic var body: String = ""
}