0

AOStartupという名前のNSManagedObjectModelサブクラスがあります。ネストされたオブジェクトを含む XML を受信して​​います。これをAOReportTypeと呼びます。私のAOStartupオブジェクトには、宛先がAOReportTypeで、逆の関係も設定されているreportTypesという 1 対多の関係があります。

XML を( AOReportTypeデータ コンテンツNSDictionaryの内部配列を作成する)に解析し、次のメソッドを使用して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

reportTypes関係のユーザー情報にmappedKeyNameキーを設定したことにも注意してください。"reportTypes.reportType"

ネストされたオブジェクトが正しくマッピングされないのはなぜですか?

4

1 に答える 1

4

これは Magical Records / Magical Import (2012 年 9 月 7 日時点の master ブランチ) のバグです。

現在、魔法のレコードKVC パスによる属性のマッピングをサポートしています。ただし、KVC パスによるマッピング関係はサポートしていません。

ローカル ブランチでこの問題を修正したので、プル リクエストを送信して master にマージします。

ご参考までに -

問題はNSManagedObject+MagicalDataImport.mの 129 行付近にあります。この行は間違っています。

        id relatedObjectData = [relationshipData valueForKey:lookupKey];

実際には次のようになります。

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