2017-05-04 4 views
0

結果からスウィフトアレイに変換しようとすると、プロパティはデフォルト値になります。レルム結果から配列に変換すると空のオブジェクトが生成されます

それでは、私はこのようなRequestオブジェクトを作成するとしましょう:

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

をそれから私はこのようなレルムからそれらを読んでいるとき:

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

は、私はちょうど良い結果を得ました。結果オブジェクトをArrayに変換する必要があります。私はそれをしました:

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) 

私は、このコードに問題がないと思います。

レルムオブジェクトのプロパティに「ダイナミック」がないのですか?

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