2011-02-24 12 views
1

こんにちは私はコアデータアプリケーションを使用しています。私のクエリは、子関係と親関係を持つ親関係と、子関係と逆関係を持つ親エンティティとをチェックしています。コアデータの問題

はだから今、私のクエリは、私は親の名前にアクセスしたいということですちょうど私がこのために述語を使用していますので、子供の名前を与えることで、母の名前を言うことができますここに私のコードの上に

-(void)reteriveviaPredicate 
{ 
    NSFetchRequest *fetchReq = [[NSFetchRequest alloc]init]; 
    [fetchReq setEntity:[NSEntityDescription entityForName:@"Child" 
            inManagedObjectContext:self.managedObjectContext]]; 

    NSPredicate *pred = [NSPredicate predicateWithFormat:@"Childname=='ravi'"]; 
    [fetchReq setPredicate:pred]; 
    NSArray *t = [self.managedObjectContext executeFetchRequest:fetchReq error:nil]; 

    for(Child *p in t) 
    { 
     NSLog(@"%@",p.Childname); 

     for(Parent *p1 in p.childToParent) 
     { 
     NSLog(@"Mother name is %@",p1.MotherName); 
     } 
    }  
} 

の眺めですコード私はそれを言う警告を得ています

warning: NSManagedObject' may not respond to '-countByEnumeratingWithState:objects:count: 

と私はアプリが南下アプリを実行するとchildToParentが対多の関係であれば、あなたはこの

おかげで、よろしく

+0

親愛なる基数、適切に質問の書式を設定してください。上記の「編集」項目をクリックすると、それがどのように完了したかを見ることができます。 – Yuji

+0

そして 'Parent'クラスのヘッダファイルを投稿してください。 – Yuji

+0

@ユージュ:既にこの仲間をして、これは私がすでに表示しているコードの一部ですが、親と子のヘッダーが既に追加されています。そして、はい私は正しく質問を書式設定します.... :) – Radix

答えて

0

チェックで私を助けてくださいことができます。私はそれがないと思う。

for(Parent *p1 in p.childToParent) 

はEDIT:あなたは

for(Parent *p1 in p.childToParent) 
{ 
    NSLog(@"Mother name is %@",p1.MotherName); 
} 

を置き換えるとどうなるか

それは対多の関係であるかどう

forループ

のみ動作します

NSLog(@"Mother name is %@",p.childToParent.MotherName); 
+0

いいえ、ParentToChildはあまりにも多くの関係ですが、私は子の名前を使用して母の名前を取得したい、私は何かを与えている場合は、親の名前の1つ – Radix

+0

@Radix to-one関係で列挙(forループ)を使用することはできません。オブジェクトのセットがないので、もう一方の端にオブジェクトが1つしかありません。私の編集を参照してください。 –

+0

ユーレカは、私がやったことが(子ども* pの) \t { \t \t NSLog(@ "%@"、(親)*(p.childToParent))。 \t} – Radix

0

リレーションシップが1対1に設定されていて1対多に設定されていない場合、この警告がありました。関係の種類を修正することで問題が解決されました。

関連する問題