2017-05-04 35 views
0

當我嘗試從結果轉換爲Swift數組時,屬性處於默認值。從領域結果轉換爲陣列產生空對象

所以我們可以說我寫一個Request對象是這樣的:

let realm = try! Realm() 
try! realm.write { 
    realm.add(request, update: true) 
} 

然後,當我從閱讀境界他們是這樣的:

let realm = try! Realm() 
let requestsFromRealm = realm.objects(Request.self) 

我得到的結果就好了。我需要將結果對象轉換爲數組。我做到了:

let requests = Array(requestsFromRealm) 

請求對象在那裏,但屬性是默認值。奇怪的是,當我用po檢查控制檯上的值時,我可以看到它們。

+0

你不只是運行到https://realm.io/docs/swift/latest/#realm-object-setters-and-getters-cannot-be-overriden?所以如果你使用訪問器,那麼值就好了? – EpicPandaForce

+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 
    } 
} 
+0

我已經嘗試過了,不幸的是它有相同的結果。 –

0
let requests = Array (requestsFromRealm) 

我認爲有這個代碼沒有問題。

Realm對象的屬性中不存在「動態」嗎?

class Request: Object { 
     dynamic var body: String = "" 
}