我試圖從NSPredicate中獲得不同的結果。具有不同屬性的NSFetchRequest
我的代碼:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Members" inManagedObjectContext:context];
request.entity = entity;
request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"city"
ascending:YES
selector:@selector(caseInsensitiveCompare:)]];
request.predicate = [NSPredicate predicateWithFormat:@"memberDeleted == %@", [NSNumber numberWithBool:NO]];
NSDictionary *properties = [entity propertiesByName];
request.propertiesToFetch = [NSArray arrayWithObject:[properties objectForKey:@"city"]];
request.returnsDistinctResults = YES;
request.fetchBatchSize = 20;
NSFetchedResultsController *frc = [[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:context
sectionNameKeyPath:nil
cacheName:@"CityCache"];
[request release];
self.fetchedResultsController = frc;
[frc release];
的問題是,結果返回同一城市的許多倍。這個實體有很多成員,每個成員都有一個「城市」屬性。
我在做什麼錯?
感謝,
RL
我也許應該補充一點'NSFetchedResultsController'不是一般的'NSDictionaryResultType'的粉絲。你可能會遇到其他問題,不得不放棄'NSFetchedResultsController'。 – Alex
問題是我不想要結果和NSDictionary。如果沒有,我將不得不改變我的一些代碼。它可以通過其他方式嗎? –
你期待它返回什麼對象?核心數據只能返回對象圖中實際存在的對象。 – Alex