Ho una classe che mappa direttamente JSON implementando il protocollo Mappable
(ObjectMapper Framework) e sto provando ad ereditare da NSManagedObject
.Come implementare la classe NSManagedObject conforme a 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"]
}
}
Il problema di questa implementazione è che il compilatore si lamenta del mapping(map)
che utilizza auto prima del Super inizializzatore: AbstractModel.swift:19:9: Use of 'self' in method call 'mapping' before super.init initializes self
purtroppo non posso chiamare l'inizializzatore super (super.init(entity: NSEntityDescription, insertIntoManagedObjectContext: NSManagedObjectContext?)
) prima mapping(map)
perché ho bisogno di self
per ottenere il NSManagedObjectContext
.
Come posso risolvere questo problema?
non ho familiarità con ObjectMapper, ma un NSManagedObject possono * solo * essere creato utilizzando l'inizializzatore designato. Comunque puoi passare 'context = nil' e inserire l'oggetto in un contesto successivo. –
Grazie, cercherò di implementarlo in questo modo. Ti terrò informato. – VincentS