0

我有一个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;
        },

这是模型对象构建器中AOStartup上的reportTypes关系及其用户信息的屏幕截图:

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

另请注意,我已将mappedKeyName密钥设置为reportTypes关系"reportTypes.reportType"的用户信息。

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

4

1 回答 1

4

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

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

我已经在我的本地分支中解决了这个问题,我将提出一个拉取请求以将其合并到 master 中。

供参考 -

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

        id relatedObjectData = [relationshipData valueForKey:lookupKey];

它实际上应该是:

        id relatedObjectData = [relationshipData valueForKeyPath:lookupKey];
于 2012-09-08T02:41:48.923 回答