所以我正在构建一个小应用程序,它使用大约25mb大小的核心数据库和4个实体.这是公交车时刻表.
在一个名为"停止"的表中,有大约1300个公共汽车站的条目,其中包含"名称","id","经度","纬度"和夫妻关系.现在有许多具有相同名称属性但坐标和ID不同的站点.所以我想在表视图中显示所有不同的停止名称,我正在使用带有NSDictionaryResultType和setPropertiesToFetch的setReturnsDistinctResults.但是setReturnsDistinctResult不起作用,我仍然得到所有条目.
继承人代码:
- (NSFetchRequest *)fetchRequest {
if (fetchRequest == nil) {
fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Stop" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSArray *sortDescriptors = [NSArray arrayWithObject:[[[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES] autorelease]];
[fetchRequest setSortDescriptors:sortDescriptors];
[fetchRequest setResultType:NSDictionaryResultType];
[fetchRequest setPropertiesToFetch:[NSArray arrayWithObject:[[entity propertiesByName] objectForKey:@"name"]]];
[fetchRequest setReturnsDistinctResults:YES];
DebugLog(@"fetchRequest initialized");
}
return fetchRequest;
}
/////////////////////
- (NSFetchedResultsController *)fetchedResultsController {
if (self.predicateString != nil) {
self.predicate = [NSPredicate predicateWithFormat:@"name CONTAINS[cd] %@", self.predicateString];
[self.fetchRequest setPredicate:predicate];
} else {
self.predicate = nil;
[self.fetchRequest setPredicate:predicate];
}
fetchedResultsController …Run Code Online (Sandbox Code Playgroud)