iOS

当前位置:首页 > iOS

ios – 如何实现符合Mappable的NSManagedObject类 - iOS

我有一个直接映射 JSON实现Mappable(ObjectMapper Framework)协议的类,我试图从NSManagedObject继承. class AbstractModel: NSManagedObject,Mappable {@NS...
我有一个直接映射 JSON实现Mappable(ObjectMapper Framework)协议的类,我试图从NSManagedObject继承.
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类所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。

相关内容

文章评论

表情

共 0 条评论,查看全部
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

评论排行榜

热门标签