2010-05-10 94 views
0

嘿,我有與CoreData有關的問題。我的iPhone項目有2個實體,組織和品牌,具有1到多個「BrandsToOrg」關係和逆向關係。核心數據合併查詢

所以我的項目有一個Mapview,在這裏你可以看到所有的組織和一個子視圖,當你點擊這些組織時。在子視圖中有一個「show Brands」按鈕,它應該啓動一個新的TableView,品牌屬於選擇性組織。 任何想法如何我可以編碼?

THX

NSPredicate *predicate = [NSPredicate predicateWithFormat: @"(TitleMedium == %@)",@"Rock Antenne"];???? 
NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:self.entityName inManagedObjectContext:managedObjectContext]; 
    [request setEntity:entity]; 


    if(predicate != nil) 
    { 
    [request setPredicate:predicate]; 
    } 

    // If a sort key was passed, use it for sorting. 
    NSString *[email protected]"TitleMedium"; 
    BOOL sortAscending=YES; 
    if(sortKey != nil) 
    { 
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:sortKey ascending:sortAscending]; 
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 
    [request setSortDescriptors:sortDescriptors]; 
    [sortDescriptors release]; 
    [sortDescriptor release]; 
    } 

    NSError *error; 

    NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy]; 

    [request release]; 
    [self setEntityArray:mutableFetchResults]; 

回答

0

這裏是你會怎麼做這與機構單位的頂級的UITableView和品牌的詳細表格視圖的例子。在頂層,您爲組織執行獲取請求並顯示它們。選擇特定的品牌時,可以創建品牌的詳細視圖。 BrandsViewController對象具有「org」屬性,該屬性告訴是要顯示的內容;它可以引用「org.brands」(這是Core Data一對多關係)來查找該顯示的所有品牌。請注意,您無需在BrandsViewController中執行明確的核心數據獲取品牌。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

BrandsViewController *targetViewController = [[BrandsViewController alloc] 
    initWithNibName:@"BrandsView" bundle:nil]; 
    // pass managedObjectContext along to new view controller 
targetViewController.managedObjectContext = self.managedObjectContext; 

// Pass the selected org to the new view controller 
targetViewController.org = (Organisation *)[fetchedResultsController objectAtIndexPath:indexPath]; 

[[self navigationController] pushViewController:targetViewController animated:YES]; 
[targetViewController release]; 
} 
+0

嘿,我有一個組織桌面視圖工作,當你選擇一個行你得到品牌詳細信息表視圖。這一切都工作到目前爲止,這是展示品牌的一種方式。 另一種方式應該是顯示組織位置的Mapview,然後按下按鈕查看品牌。而且我的問題是,我只讓所有品牌都不是特定的組織。 – 2010-05-10 15:09:05

+0

聽起來像你的MapView首先需要找出哪個組織在選定的位置,然後將選定的組織傳遞給你的詳細tableview以某種方式。 – 2010-05-10 15:33:19