1

私には2つのエンティティがあります。それらはSPおよびコードと呼ばれます。それぞれに10個と5個の属性があります。私は両方のエンティティに逆の関係があります。Firefoxアドオンのsqliteマネージャーを使用してモデルにデータを入力しました。だからはこのsp.coderelationship=codeObjのような行を書きませんでした。またはcode.sprelationship=spObj; コードのどこでも。現在、ビューコントローラでデータを取得しています。self.spArray = [self.managedObjectContext executeFetchRequest:fR error:&error];

for(SP *spObj in self.spArray)
{
    NSLog(@"description is %@",spObj.sPDescription);
    Code *codObj = spObj.coderelationship;
    NSLog(@"it has value %@",codObj);
    NSLog(@" unique name is %@",codObj.uniqueCodeName);
}

出力は説明として正しいです。値「xyz」を出力します。しかし、最後の2つのログでは、そのnullが記録されます。マイエンティティのデザイン

SP

-sPDescription-sPName-sPID 関係 -coderelationship


コード-codeName-codeID-codeDate 関係 -sprelationship

さらに情報が必要な場合はお知らせください。ありがとう..

4

1 に答える 1

1

フェッチ要求を実行する前に、次のコードを追加します。

NSString *relationshipKeyPath = @"coderelationship"; // Set this to the name of the relationship on "SP" that points to the "Code" objects;
NSArray *keyPaths = [NSArray arrayWithObject:relationshipKeyPath];
[fR setRelationshipKeyPathsForPrefetching:keyPaths];

また、関係がデータベースに正しく挿入されていることを確認しましたか?

于 2012-10-27T08:56:38.493 に答える