私のモデルイベントに親エンティティがあります。そして2つの子エンティティ:誕生日、記念日。私は誕生日と記念日の親オブジェクトがイベントであるように、コアデータに組み込まれたエンティティ継承機能を使用しています。NSFetchedResultsControllerとエンティティの継承
だから私は、以下のものを使用してフェッチします:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
// Set the batch size to a suitable number.
[fetchRequest setFetchBatchSize:20];
// Edit the sort key as appropriate.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"start_date" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
etc...
今、私は、イベントの種類、誕生日や記念日でfetchedObjectsをソートしたいです。
どうすればよいですか?私は試しました:
for (Birthday *birthday in _fetchedResultsController.fetchedObjects){
[birthdayObjects addObject:birthday];
}
for (Anniversary *anniversary in _fetchedResultsController.fetchedObjects){
[anniversaryObjects addObject:anniversary];
}
しかし、これはちょうどfetchedObjectsのすべてのオブジェクトを各配列に追加します。
これは間違った方法ですか?
UPDATE:
は、この使用してそれを考え出し:
for (Event *event in _fetchedResultsController.fetchedObjects){
if ([event isKindOfClass:[Birthday class]]){
[birthdayObjects addObject:event];
}else{
[anniversary addObject:event];
}
}
をしかし、私はそれを開いています良い方法があれば!ありがとう。
@ "class"の別の並べ替え記述子を追加すると動作します – govi
@ "class"キーパスが見つかりません – tofortier
[obj valueForKey:@ "class"]は私に適切なクラス名を与えます。うーん....私はすぐにあなたの状態ができるプロジェクトを持っていない。 – govi