2017-05-17 16 views
4

問題の背景から始めましょう。オブジェクトマッパークラスを使用してコアデータにデータを格納する

私はCoreData

 @objc(Event) 
     class PersonMO: NSManagedObject { 

     @NSManaged var ID : String? 
     @NSManaged var firstName : String? 
     @NSManaged var lastName : String? 

    } 

でレコードを保存するために使用されている別のクラス名PersonMOを持つ他の一方でJSON応答

class Person: NSObject, Mappable { 

     var ID : String? 
     var firstName : String? 
     var lastName : String? 

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

      } 

      func mapping(map: Map) { 
       patientsCount <- map["patientsCount"] 
       status <- map["status"] 
       message <- map["Message"] 
       patientSearchArray <- map["patientsList_JSON"] 
      } 
    } 

を解析するために使用されるPersonクラスは今すぐ来てい主なポイントに。私が直面している問題は、1つの目的のために2つの異なるクラスを作成しなければならないということです。ちょうどのようにJSONServer Sideの形式になったら、それをPersonクラスに解析してから、PersonクラスオブジェクトをPersonクラスオブジェクトに変換する必要があるため、PersonCore Dataに保存します。それは悪い習慣のように思える。 ただ1つのクラスを使用する方法はありますかPersonは、JSONを解析するのに使用されると同時に、そのPersonクラスをコアデータに格納するために使用します。

+0

ObjectMappperがこれをサポートしているようには見えません。しかし、ObjectMappperはオープンソースなので、あなたはそれを変更して、あなたの変更を組み込むためのプルリクエストを送ることができます。 –

+0

もし私が同じ問題に直面しているように分かち合いたいなら、あなたはこれに対する解決策を見つけましたか? – rmp

答えて

0

このような単一のPersonクラスは十分であるはずですが、両方の場合に役立ちます。

class Person: NSManagedObject, Mappable { 

@NSManaged var ID : String? 
@NSManaged var firstName : String? 
@NSManaged var lastName : String? 

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

} 

func mapping(map: Map) { 
    patientsCount <- map["patientsCount"] 
    status <- map["status"] 
    message <- map["Message"] 
    patientSearchArray <- map["patientsList_JSON"] 
} 
} 

NSManagedObjectNSObjectのサブクラスであるので、それだけでマッピング可能であなたのPersonクラスと同じように使用することができます。 @NSManagedは、CoreDataで管理されていることを示していますが、通常の変数と同様に使用できます。

+0

私はすでにこのアプローチを試みました。 NSManagedObjectをParentクラスとして設定すると、NSManagedObjectのinitメソッドを実装する必要があり、init(map:Map)メソッドは呼び出しません。したがって、マッピング(map:Map)も呼び出されません。 –

+0

マッピングにはどのライブラリを使用していますか? init(map:Map)が呼び出される方法を知りたい –

+0

ObjectMappperを使用してJSON応答を解析しています。 –

関連する問題