ios - 快速加入多个关系

标签 ios swift core-data entity-relationship nsmanagedobject

请帮忙。

我有 3 个 NSManaged 对象。

比如员工、工资单、付款项目

每个Employee可以有多个Payslip,每个Payslip可以有多个PayItems

so the relationship is Employee <->> Payslip <<- PayItem

它们都被设置为 NSManagedOjects

然后假设我有 3 个实例:(假设我通过将其添加到 NSManagedObject 类来初始化每个实例:

  convenience init(context: NSManagedObjectContext)
    {
    let entity = NSEntityDescription.entity(forEntityName: <entity>, in: context)!
    self.init(entity: entity, insertInto: context)'
    }

那我就可以声明了。

 var employee = Employee(context: context)
        var payslip = Payslip(context: context)
        var payItem = PayItem(context: context) 

然后我可以:

employee.addToPayslip(payslip) //Using the function created for me by default.

但如果我尝试:

payslip.payItem = payItem

我总是得到错误:

Failed to call designated initializer on NSManagedObject class 'PayItem'

总而言之,我试图将员工链接到工资单,即一对多,然后将工资单链接到付款项,即一对多。为什么我过得很艰难?

最佳答案

原来我有一个返回未初始化版本的 PayItem 的函数。花了一段时间才找到,但解决这个问题解决了我的问题。

关于ios - 快速加入多个关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41343117/

相关文章:

ios - 在核心数据中重复 NSDates,但不使用相同代码重复 NSStrings

ios - 重置dispatch_once是否安全(不涉及线程)

ios - NSURLCache 不适用于 NSURLSession

ios - UITableView 在上方和下方添加空行,在将页眉和页脚设置为空 View 后仍然存在

ios - 对导航项的更改延迟显示

ios - 如何使用 simperium 更改 "listen"以更改特定对象

ios - 设置适合按钮 backgroundImage 的纵横比

ios - NSCoding 自定义对象子数组未持久化

ios - 如何从 iOS 中的十六进制/二进制(原始数据)值生成音频文件?

ios - 如何删除现有记录并在核心数据中添加新数据