1
我已經設置了一個數據模型,其中學生實體的名稱與Subject有一對多的關係。他參加的每個主題都有許多班級時報。核心數據在一對多關係中排序
下面的代碼根據學生姓名對它進行排序,這很簡單。
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Student" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
// Edit the sort key as appropriate.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
我想要做的就是對它進行排序,以便它在每個學生需要參加的下一個班級時間排序。因此,顯示屏將顯示爲學生,並按照下一課的時間進行排序。有任何想法嗎?
我已經試過以下
[fetchRequest setEntity:[NSEntityDescription entityForName:@"Student" inManagedObjectContext:managedObjectContext]];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"(subjects.time > %@)", [NSDate date]]];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"time" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
我得到錯誤「‘一對多這裏不允許鑰匙’」,然後,我嘗試setRelationshipKeyPathsForPrefetching:但沒有取到多的關係的科目。有任何想法嗎?
'time'是Class的一個屬性。所以流程應該像從學生那裏獲取'名字'一樣。從班級獲取該學生的所有'時間'。排序'時間'以查找下一個上課時間(從現在開始)。然後根據下一個上課時間對所有學生進行排序。 – munchine 2010-10-06 00:52:41
@munchine是正確的。 – Jordan 2010-10-06 03:23:26
我很努力地得到這個工作的代碼,因此這個問題,有人可以幫助我嗎? – munchine 2010-10-06 05:20:36