魔法记录-如何使用关键路径映射关系



我有一个NSManagedObjectModel子类,名为AOStartup。我收到的XML中有嵌套的对象,我称之为AOReportType。在我的AOStartup对象上,我有一个名为reportTypes的一对多关系,它的目标为AOReportType,还有一个反向关系集。

我正在将XML解析为NSDictionary(它创建AOReportType数据内容的内部数组),然后使用以下方法将其映射到AOStartup对象:

[startup importValuesForKeysWithObject:dictionary];

所有属性都正确映射。然而,这种关系映射不正确。

以下是相关的NSDictionary代码(从控制台日志复制粘贴):

reportTypes = {        
    reportType = (
        {
            "_id" = 727;
            backgroundColor = FFFFFF;
            mayCreate = false;
            name = "Animal Codes";
            navBarColor = 350000;
            referenced = false;
            reportName = Code;
            reportVersion = 0;
        },
        {
            "_id" = 718;
            backgroundColor = FFFFFF;
            mayCreate = false;
            name = "Business License Codes";
            navBarColor = 350000;
            referenced = false;
            reportName = Code;
            reportVersion = 0;
        },

以下是reportTypes关系的屏幕截图,以及模型对象生成器中AOStartup上的用户信息:

https://i.stack.imgur.com/nAWfi.png

另外请注意,我已经在reportTypes关系的用户信息中将mappedKeyName键设置为"reportTypes.reportType"

为什么嵌套对象映射不正确?

这是Magical Records/Magical Import(截至2012年9月7日的主分支)中的一个错误。

目前,魔法记录确实支持通过KVC路径映射属性。但是,它不支持通过KVC路径映射关系。

我已经在本地分支中解决了这个问题,我将放入一个pull请求,将其合并到master中。

FYI--

问题是第129行附近的NSManagedObject+MagicalDataImport.m。这行错了:

        id relatedObjectData = [relationshipData valueForKey:lookupKey];

实际上应该是:

        id relatedObjectData = [relationshipData valueForKeyPath:lookupKey];

最新更新