Ich habe eine Klasse, die direkt JSON unter Verwendung der Mappable
(ObjectMapper Framework) Protokoll und ich versuche, von NSManagedObject
erben.Wie zu implementieren NSManagedObject-Klasse konform zu Mappable
class AbstractModel: NSManagedObject, Mappable {
@NSManaged var uuid: String?
@NSManaged var updatedAt: String?
@NSManaged var createdAt: String?
required init?(_ map: Map) {
mapping(map)
}
func mapping(map: Map) {
uuid <- map["uuid"]
updatedAt <- map["updatedAt"]
createdAt <- map["createdAt"]
}
}
Das Problem bei dieser Implementierung ist, dass der Compiler über die mapping(map)
beklagt, die selbst nutzt vor dem Super-Initialisierer: AbstractModel.swift:19:9: Use of 'self' in method call 'mapping' before super.init initializes self
Leider kann ich nicht den Super-initializer nennen (super.init(entity: NSEntityDescription, insertIntoManagedObjectContext: NSManagedObjectContext?)
) vor mapping(map)
weil ich self
brauche um die NSManagedObjectContext
zu bekommen.
Wie soll ich dieses Problem lösen?
Ich bin nicht vertraut mit ObjectMapper, sondern ein NSManagedObject kann * nur * mit dem angegebenen Initialisierer erstellt werden. Sie können jedoch "context = nil" übergeben und das Objekt später in einen Kontext einfügen. –
Danke, ich werde versuchen, es so zu implementieren. Ich werde dich auf dem Laufenden halten. – VincentS