Swift - 同时访问核心数据中的多个实体

时间:2015-01-08 19:58:27

标签: ios core-data swift

我将对象保存到我的核心数据,现在我需要一次将数据保存到两个不同的实体。 按照我自己的逻辑,如果我通常保存我的数据(这完全有效):

    let appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
    let contxt: NSManagedObjectContext = appDel.managedObjectContext!
    let en = NSEntityDescription.entityForName("MainTable", inManagedObjectContext: contxt)

        var newMessage = SecondModel(entity: en!, insertIntoManagedObjectContext: contxt)
            newMessage.receiver = object["Receiver"] as String

contxt.save(nil)

我应该可以通过使用我的不同实体创建另一个变量来保存到另一个实体:

let enet = NSEntityDescription.entityForName("AlreadyRec", inManagedObjectContext: contxt)
var secondMessage = ThirdModel(entity: enet!, insertIntoManagedObjectContext: contxt)

这给了我一个错误,说“ThirdModel没有可用的初始化器,我不知道这意味着什么或如何解决这个问题。请帮我解决这个问题。

有关如何进行的任何建议都将受到高度赞赏。

1 个答案:

答案 0 :(得分:3)

您的上下文涵盖了所有核心数据。只需保存到最后。

  1. 创建/编辑entity1
  2. 创建/编辑entity2
  3. 保存
  4. 一些建议:远离你的不起眼的命名约定。不要打电话给你的实体MainTable - 这在SQL世界中甚至没有意义!令我恐惧的是,我注意到您的托管对象模型子类不是MainTable而是SecondModel

    如果您的数据描述了小部件,则应该调用您的实体及其子类Widget。如果它是抽象的东西,比如编程习惯,你可以称之为Habit。明白这一点?