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;
}
)
'alltrips'の結果は何ですか? –
最初の編集で出力を追加しました –
'alltrips.first'の' first'がどこから来ているのかわかりません... –