【问题标题】:Adding a one to many relationship in Swift在 Swift 中添加一对多关系
【发布时间】:2014-08-02 12:32:21
【问题描述】:

我是 iOS 编程新手,只需要一点帮助。 我正在尝试使用核心数据并创建一个简单的插入,其中存在一对多关系。 我很简单的核心数据结构是这样的

现在在代码中我也创建了 NSManagedObject 子类,并且能够单独创建这些对象。我需要帮助的是我如何建立这种关系。我的代码是

Xcode 生成的Father.swift

class Father: NSManagedObject {

    @NSManaged var name: String
    @NSManaged var fatherToChild: NSSet

}

Xcode 生成 Child.swift

class Child: NSManagedObject {

    @NSManaged var name: String
    @NSManaged var child_father: NSManagedObject

}

我的添加数据方法:

    func addData(){
   var appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
   var context: NSManagedObjectContext = appDel.managedObjectContext!

    var fatherEntity = NSEntityDescription.entityForName("Father", inManagedObjectContext: context)
    var newFather = Father(entity: fatherEntity, insertIntoManagedObjectContext: context)
    newFather.name = "Daddy"


    var childEntity = NSEntityDescription.entityForName("Child", inManagedObjectContext: context)
    var child1 = Child(entity: childEntity, insertIntoManagedObjectContext: context)
    child1.name = "child1"
    var child2 = Child(entity: childEntity, insertIntoManagedObjectContext: context)
    child2.name = "child2"

    //How to map these 2 childs to father? Need help in code here!

    context.save(nil)

}   

【问题讨论】:

  • 会给你 5 票,让我理解这一对多!谢谢

标签: ios xcode swift


【解决方案1】:

你所要做的就是设置从孩子到父亲的关系:

child1.child_father = newFather
child2.child_father = newFather

这会自动更新newFather 中的(反向)关系。

【讨论】:

  • 谢谢。我太笨了,不能只使用它。可能是晚上太晚了!再次非常感谢。
  • 你能解释一下为什么fatherToChild是NSSet类型而childToFarher是NSManagedObject类型吗?
  • @dellos:因为一个是“对多”关系,另一个是“对一”关系。
  • 我需要通过子类 NSManagedObject 定义代码中的每个关系吗?
  • @MartinR 你能告诉我如何编辑和更新关系吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-08
  • 2019-09-05
  • 1970-01-01
  • 1970-01-01
  • 2020-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多