2016-02-17 8 views
5

ObjectMapperを使用して、JSONオブジェクトをレルムに解析しています。レルムすべてのnil値を持つオブジェクトを返します。

私のクラスの旅は、次のようになります。

class Trip: Object, Mappable { 
    dynamic var Id : String? = nil 
    dynamic var CreatedOn : String? = nil 
    dynamic var LastModified : String? = nil 

    required convenience init?(_ map: Map) { 
     self.init() 
    } 

    func mapping(map: Map) { 
     Id <- map["Id"]; 
     CreatedOn <- map["CreatedOn"]; 
     LastModified <- map["LastModified"]; 
    } 
} 

私は、WebサービスAlamofireを使用して、要求呼び出しています:私はテストを印刷するとき、私は取得するには、上記のコードで

Alamofire.request(.GET, path, headers: ["Token" : auth_token]).responseJSON { response in 

    let dict : NSDictionary? = response.result.value as? NSDictionary 

    let test = Mapper<Trip>().map(dict!) 
    let realm = try! Realm() 
    realm.beginWrite() 
    realm.add(test!) 
    try! realm.commitWrite() 

    let alltrips : Results<Trip> = realm.objects(Trip) 
    let firstTrip = alltrips.first 
} 

を:

(AwesomeApp.Trip?) test = 0x0000000154e8f0d0 { 
    RealmSwift.Object = { 
    Realm.RLMObjectBase = { 
     ObjectiveC.NSObject = {} 
    } 
    } 
    Id = "47d86d34-b6f2-4a9f-9e31-30c81a915492" 
    CreatedOn = "2016-01-20T23:39:41.995Z" 
    LastModified = "2016-01-20T23:44:39.363Z" 
} 

印刷すると、firstTrip、取得します

(AwesomeApp.Trip?) firstTrip = 0x0000000154f1f370 { 
    RealmSwift.Object = { 
    Realm.RLMObjectBase = { 
     ObjectiveC.NSObject = {} 
    } 
    } 
    Id = nil 
    CreatedOn = nil 
    LastModified = nil 
} 

レルムブラウザを使用しましたが、値が正しくデータベースに書き込まれたようです。ただし、値を読み取ると、すべてのnil値を持つトリップオブジェクトが返されます。どうしてこれなの ?

EDIT:私はprint (allTrips)を用いallTripsを印刷し、これがプリントアウト:

Results<Trip> (
    [0] Trip { 
     Id = 47d86d34-b6f2-4a9f-9e31-30c81a915492; 
     CreatedOn = 2016-01-20T23:39:41.995Z; 
     LastModified = 2016-01-20T23:44:39.363Z; 
    } 
) 
+0

'alltrips'の結果は何ですか? –

+0

最初の編集で出力を追加しました –

+0

'alltrips.first'の' first'がどこから来ているのかわかりません... –

答えて

2

レルムObjectサブクラスのインスタンス変数のみまだレルムに追加されていないオブジェクトのために使用されます。オブジェクトがレルムに追加された後、またはレルムから取得されたオブジェクトの場合、オブジェクトゲッターとセッターはインスタンス変数を使用せずにレルムから直接データにアクセスします。これは、インスタンス変数に期待する値がない理由です。

+0

こんにちは@bdash、この情報はどこにありますか? – Zeb

+2

私はレルムで働いています。 – bdash

+0

@bdashその解決策は何ですか?ありがとう! –

関連する問題