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"]}}
这个实现的问题是编译器抱怨在超级初始化器之前使用self的映射(map):
AbstractModel.swift:19:9:在super.init初始化self之前,在方法调用’mapping’中使用’self’
不幸的是,我无法在映射(map)之前调用超级初始化器(super.init(实体:NSEntityDescription,insertIntoManagedObjectContext:NSManagedObjectContext?)),因为我需要self来获取NSManagedObjectContext.
我该怎么解决这个问题?
解决方法
class AbstractModel: NSManagedObject,Mappable {@NSManaged var uuid: String?@NSManaged var updatedAt: String?@NSManaged var createdAt: String?override init(entity: NSEntityDescription,insertIntoManagedObjectContext context: NSManagedObjectContext?) { super.init(entity: entity,insertIntoManagedObjectContext: DBUtils().getManagedObjectContext())}required init?(_ map: Map) { var ctx = NSManagedObjectContext.MR_defaultContext() var entity = NSEntityDescription.entityForName("AbstractModel",inManagedObjectContext: ctx) super.init(entity: entity!,insertIntoManagedObjectContext: ctx) mapping(map)}func mapping(map: Map) { uuid <- map["uuid"] updatedAt <- map["updatedAt"] createdAt <- map["createdAt"]}}
以上是来客网为你收集整理的ios – 如何实现符合Mappable的NSManagedObject类全部内容,希望文章能够帮你解决ios – 如何实现符合Mappable的NSManagedObject类所遇到的程序开发问题。
如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。