Yinelenen Olay başlıklarına sahip olan Çekirdek Veriler'e yüklenmiş bir Olay veritabanım var. Bu, veritabanının etkinliğin her günü için benzersiz bilgi sağlayabilmesi için yapılmıştır. Her bir tarihte fiyatlandırmada dalgalanmalar.Yinelenen verileri ortadan kaldırmak için Temel Verileri Sırayla Sınıflandırılıyor
Şimdi yinelenen olay başlıklarını, filtreyi sağlamak için NSFetchRequest ve NSPredicate ile tablo görünümü olarak görüntülenecek bir listeden kaldırmam gerekiyor. Ancak, gördüğüm tüm örnekler, yüklem filtresi için hedef olarak kullanılacak hiçbir dinamik anahtar değeri gerektirmiyor. Örneğin, NSDate'in altında şimdi bir anahtar filtre olarak zaman sağlar ve çalışır.
Şu anda NSString * başlığı, bir nil değeri döndüren ManagedObject sınıfındaki olaylarda bir değeri hedefler. İşte FetchResultsController gelen bir keskin nişancı.
- (NSFetchedResultsController *)fetchedResultsController {
if (fetchedResultsController == nil) {
NSFetchRequest *fetchRequest = [[[NSFetchRequest alloc] init] autorelease];
NSPredicate *predicate = [[[NSPredicate alloc] init] autorelease];
[fetchRequest setReturnsObjectsAsFaults:NO];
[fetchRequest setEntity:[NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext]];
NSArray *sortDescriptors = nil;
NSString *sectionNameKeyPath = nil;
NSDate *date = [NSDate date];
NSString *title = [events title];
if ([fetchSectioningControl selectedSegmentIndex] == 1) {
predicate = [NSPredicate predicateWithFormat:@"(closeDate >= %@) AND (title == %@)", date, title ];
sortDescriptors = [NSArray arrayWithObjects:[[[NSSortDescriptor alloc] initWithKey:@"category.name" ascending:YES] autorelease], [[[NSSortDescriptor alloc] initWithKey:@"openDate" ascending:YES] autorelease], nil];
sectionNameKeyPath = @"category.name";
} else if ([fetchSectioningControl selectedSegmentIndex] == 0){
predicate = [NSPredicate predicateWithFormat:@"closeDate >= %@", date];
sortDescriptors = [NSArray arrayWithObject:[[[NSSortDescriptor alloc] initWithKey:@"openDate" ascending:YES selector:@selector(compare:)] autorelease]];
sectionNameKeyPath = @"day";
}
[fetchRequest setPredicate:predicate];
[fetchRequest setSortDescriptors:sortDescriptors];
fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:sectionNameKeyPath cacheName:@"EventsCache"];
}
return fetchedResultsController;
}
aynı sorunu burada. –