代码之家  ›  专栏  ›  技术社区  ›  Jane Sales

CoreData-如何创建NSManagedObject子类的子类(代沟模式)

  •  7
  • Jane Sales  · 技术社区  · 15 年前

    我肯定这一定是个愚蠢的问题,但我已经搜索了网络,找不到答案。很多人都在谈论使用代沟模式,在代沟模式中,您有一个从您的模型生成的NSManagedObject子类,然后再将该子类添加到瞬态属性和行为中。这样做的好处是,如果您更改了持久化模型,就可以再次生成基本文件,而不会有覆盖您自己的代码的危险。

    我有一个从NSManagedObject派生的基本CardMO对象。然后我将其子类化,以创建自己的卡对象。

    我的问题是,如何创建受管理的卡对象?

    我试过:

      Card* card = [NSEntityDescription insertNewObjectForEntityForName:@"CardMO" inManagedObjectContext:moc];
    

    但是这个对象并不是一张真正的卡片,当然,当我继续调用这个对象上的Card方法时,会出现一个异常。

    我尝试使用alloc/init创建一张卡(init只调用[super init]),然后将其添加到managedObjectContext中,如下所示:

    [moc insertObject:(CardMO*)card];
    

    这给了我一个神秘的错误“调用NSManagedObject类“Card”上指定的初始值设定项失败”

    我该怎么办?

    我正在3.0上编写一个iPhone应用程序,但我假设10.5的核心数据也是如此。

    2 回复  |  直到 15 年前
        1
  •  8
  •   Jane Sales    15 年前

    使用它!

    这就是为什么人们使用 mogenerator .

        2
  •  0
  •   Rob    14 年前

    为什么不使用NSCoding呢?然后,您可以支持XML或JSON或任何其他在应用程序外部描述对象的方法。