7

ObjectMapper を使用して、JSON オブジェクトを Realm に解析しています。

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

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"];
    }
}

Alamofire を使用して Web サービス リクエストを呼び出しています。

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
}

Realm Browser を使用しましたが、値がデータベースに正しく書き込まれているようです。ただし、値を読み取ると、すべて nil 値の trip オブジェクトが返されます。どうしてこれなの ?

編集: allTrips を使用print (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;
    }
 )
4

1 に答える 1