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

时间:2012-09-07 06:31:48

标签: ios core-data magicalrecord

我有一个NSManagedObjectModel子类,名为 AOStartup 。我收到的XML中嵌套了对象,我称之为 AOReportType 。在我的 AOStartup 对象上,我有一个名为 reportTypes 的一对多关系,其目的地为 AOReportType ,并且也设置了反比关系。

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

[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 用户信息的屏幕截图:

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

另请注意,我已在{strong> reportTypes 关系的用户信息上将mappedKeyName键设置为"reportTypes.reportType"

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

1 个答案:

答案 0 :(得分:4)

这是魔法记录/魔法导入中的一个错误(截至2012年9月7日的主分支)。

目前,神奇记录确实支持KVC路径的映射属性。但是,支持KVC路径的映射关系。

我已经在我的本地分支中修复了这个问题,我将提出一个pull请求将它合并到master中。

FYI -

问题在于第129行附近的 NSManagedObject + MagicalDataImport.m 。这一行是错误的:

        id relatedObjectData = [relationshipData valueForKey:lookupKey];

实际应该是:

        id relatedObjectData = [relationshipData valueForKeyPath:lookupKey];