2012-01-24 11 views
0

私はこのようになりますデータモデル持って取得:ユーザーが顧客を選択したときに、私はテーブルビュー上の顧客のリストを表示コアデータが要求

enter image description here

を、それはその後のための部屋のリストを示していその顧客 - これは現在すべて正常に動作します。

問題は、私が部屋の詳細ビューを表示しようとしているときです。ユーザーが部屋を選択すると、その部屋のすべての値を含むビューが表示されます。 (うまくいくはずです)。私はこれをある程度まで働かせていますが、もし私が同じ名前の2つの部屋を持っていれば - つまり、2人の異なる顧客のために "ベッドルーム1"、それは正しい部屋のデータを表示しません。ここ

は、私が使用していたコードです:

AppDelegate_Shared *appDelegate = [[UIApplication sharedApplication] delegate]; 

    NSManagedObjectContext *context = [appDelegate managedObjectContext]; 

    NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"Rooms" inManagedObjectContext:context]; 

    NSFetchRequest *request = [[NSFetchRequest alloc] init]; 

    [request setEntity:entityDesc]; 

    NSPredicate *pred = [NSPredicate predicateWithFormat:@"(Room = %@)", titleStr]; 

    [request setPredicate:pred]; 

    NSManagedObject *matches = nil; 
    NSError *error; 

    NSArray *objects = [context executeFetchRequest:request error:&error]; 

    if ([objects count] == 0) 
    { 
     NSLog(@"No matches"); 
    } else 
    { 
     matches = [objects objectAtIndex:0]; 
     NSLog(@"matches found"); 
     aLbl.text = [matches valueForKey:@"DimA"]; 
    } 
    [request release]; 
    [NSFetchedResultsController deleteCacheWithName:nil]; 
    [self.fetchedResultsController.fetchRequest setPredicate:pred]; 

私は起こるしたいどのような、詳細ビューがすでに選択されているものを顧客に基づいて詳細を示しています。

すべてのヘルプははるかに高く評価されています...

おかげ

答えて

1
また、あなたが探しているお客様を含めるように述語を変更し

これはSQL(SQLを使用していることが前提)と仮定します。述語はWHERE句です。部屋が一意でない場合、同じ名前の部屋がすべて返されます。

あなたが望むのは、ROOM == roomNameとcustomer == customerIdの部屋です。

+0

[NSPredicate predicateWithFormat:@ "(Room ==%@)AND、(CustomerRelationship ==%@)"、titleStr、customerManagedObject] – zrxq

+0

ありがとうございました!お辞儀をする :-) –

関連する問題