iOS核心数据中的多个上下文

iOS核心数据中的多个上下文,ios,objective-c,core-data,Ios,Objective C,Core Data,我有一些关于在我的应用程序的核心数据中创建托管对象上下文的问题,如果你能帮忙的话,请 为了简化,假设我的应用程序是实体街道和另一个实体房屋。每个街道对象都有各种属性,包括房屋对象的属性房屋列表(NSArray)(可转换类型)。如果我没有引入房屋实体,并且只有街道的核心数据,那么一切正常,我能够保存上下文,加载给定街道中的所有房屋对象,等等 但是,当我为House创建一个实体(我将它保存在与Street相同的MOC中)并运行setHouseList时,下一次启动应用程序时,我会收到一个常见错误“C

我有一些关于在我的应用程序的核心数据中创建托管对象上下文的问题,如果你能帮忙的话,请

为了简化,假设我的应用程序是实体街道和另一个实体房屋。每个街道对象都有各种属性,包括房屋对象的属性房屋列表(NSArray)(可转换类型)。如果我没有引入房屋实体,并且只有街道的核心数据,那么一切正常,我能够保存上下文,加载给定街道中的所有房屋对象,等等

但是,当我为House创建一个实体(我将它保存在与Street相同的MOC中)并运行setHouseList时,下一次启动应用程序时,我会收到一个常见错误“CoreData:error:未能调用NSManagedObject类“House”上的指定初始值设定项”。以下是我关于这个的问题

  • 这种情况是否也意味着我有不同的线索?很抱歉不知道,但根据我的理解,这里没有后台线程进行并行更新,因此理想情况下,这些线程不是单独的线程,因此我不需要单独的托管对象上下文

  • 我甚至尝试在app委托中声明一个新的MOC属性,并将其传递给调用setHouseList的视图控制器,然后还将所有房屋对象保存在这个新的MOC中。这也没用,我也犯了同样的错误

  • 我怀疑如果我使用一个新的主运行中心,在调用setHouseList时可能必须使用ObjectID,但不知何故,我无法了解如何做到这一点。。。我进一步浏览了和链接,但没有取得任何进展。。。任何意见都将不胜感激


  • 谢谢

    你真的应该在
    房屋
    街道
    实体之间建立一个对多关系,其中一条
    街道
    可以有多个
    房屋
    实体与其关联

    如果顺序很重要(我想不会),那么您可以将关系建模为
    传感器数据集
    ,尽管
    NSSet
    听起来在这种情况下很好

    然后,在创建对象时,在
    房屋
    上设置
    街道
    属性,并将
    房屋
    添加到
    街道
    上的
    房屋集

    func addHouse(house: House) {
        let houses = self.mutableSetValueForKey("houses")
        houses.addObject(house)
    }
    

    核心数据将从此处开始处理。

    如果没有任何代码,很难回答这个问题。如何创建房屋MO?不应使用房屋数组。用关系代替。谢谢@ClausBönnhoff。。。是的,使用关系解决了我的问题!谢谢谢谢@夸张。。。使用关系解决了这个问题!再次感谢!
    func addHouse(house: House) {
        let houses = self.mutableSetValueForKey("houses")
        houses.addObject(house)
    }