2010-08-27 67 views
1

也許有一個簡單的解決方案,這一點,但我得到的這個頭痛,我這一切的核心數據的東西相當新:一些排序問題(核心數據初學者)

我有一個BankAccount類/具有「索引」屬性的實體,用於排序,以及與事務類/實體的「事務」對多關係。這個交易實體有一個「日期」屬性,我也想用於排序。

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
[fetchRequest setEntity:[NSEntityDescription entityForName:@"BankAccount" inManagedObjectContext:self.managedObjectContext]]; 
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"index" ascending:YES]; 
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]]; 

這個效果很好,並提供BankAccount對象很好地按「索引」排序。但是,每個BankAccount對象都包含一個NSSet「交易」,這個交易當然是根本沒有排序的。我怎樣才能得到這些交易按「日期」屬性排序,這可能在同一個提取請求內?

非常感謝提前。

回答

1

要做到這一點,你需要獲取訂購的交易。

你所需要的是:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
[fetchRequest setEntity:[NSEntityDescription entityForName:@"Transaction" 
            inManagedObjectContext:self.managedObjectContext]]; 
[fetchRequest setPropertiesToFetch :[NSArray arrayWithObjects:@"date", @"bankAccount", nil]]; 
[fetchRequest setSortDescriptors:[NSArray arrayWithObjects: 
            [[[NSSortDescriptor alloc] initWithKey:@"date" 
                   ascending:YES 
                   selector:@selector(compare:)] autorelease], 
            [[[NSSortDescriptor alloc] initWithKey:@"bankAccount.index" 
                   ascending:YES] autorelease], 
            nil]]; 

我假設Transaction是交易實體的名稱,以及bankAccount是從實體TransactionBankAccount的關係。

+0

哪裏可以得到預期的結果? – vfn 2010-09-23 23:43:27