核心数据:一对多关系 - 没有保存细节

Posted

技术标签:

【中文标题】核心数据:一对多关系 - 没有保存细节【英文标题】:Core Data : 1 to many relation - no details saved 【发布时间】:2015-08-28 15:48:44 【问题描述】:

我在 CoreData 中有一个关系,据说应该保存实体的详细信息。

这些天我基本上只是按照建议快速执行此操作。但似乎没有运气。至少我的数据应该在那里,但它们不在数据库中,也不在 res 变量中。参数项:[RBPMyChargesDetailModel] 存在于通话中。

@NSManaged var year:NSNumber
@NSManaged var limit:NSNumber
@NSManaged var paidOther:NSNumber
@NSManaged var paidOverLimit:NSNumber
@NSManaged var paidRBP:NSNumber
@NSManaged var chargesDetails:NSMutableSet

class func create(year:NSNumber, limit:NSNumber, paidOther:NSNumber, paidOverLimit:NSNumber, paidRBP:NSNumber, items:[RBPMyChargesDetailModel]?)

    MagicalRecord.saveWithBlockAndWait((localContext : NSManagedObjectContext!) in

        var res:RBPMyChargesModel = RBPMyChargesModel.createInContext(localContext) as! RBPMyChargesModel

            res.year = year
            res.limit = limit
            res.paidOther = paidOther
            res.paidOverLimit = paidOverLimit
            res.paidRBP = paidRBP

        if let it = items 
            res.chargesDetails.addObjectsFromArray(it)
        

        NSLog("Details %@", res.chargesDetails)
    )

我们将不胜感激,因为我显然做错了什么。 顺便说一句:我正在使用 MagicalRecords 来支持我的项目。

【问题讨论】:

“不走运”具体是什么意思? 我的意思是没有记录,因为费用详情已保存到数据库,但当我调用该函数时数据存在。 您是否对任何属性进行了验证?如果要求属性不为零,则不会保存任何数据。通用代码模板看起来不错,所以我不确定它可能是什么 【参考方案1】:

在您的模型图像中,您以错误的方式获得了对多关系。应该是

Model <----->> Detail

不是

Model <<-----> Detail

【讨论】:

以上是关于核心数据:一对多关系 - 没有保存细节的主要内容,如果未能解决你的问题,请参考以下文章

核心数据一对多关系未正确/按预期保存

如何使用 Objective-C 将一对多关系数据保存到核心数据中

一对多关系核心数据只保存最后一个对象。其他人不见了

以一对多关系保存数据

不搜索一对多核心数据关系

在插入新的子对象时,父子对象传递与多级的一对多关系。 IOS核心数据