这是一个简单的问题,我完全难过......
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"SUBQUERY(centres, $centre, $centre.centrename == %@).@count > 0", @"EEE1"];
我使用上面的谓词来匹配名为EEE1的中心。但是,奇怪的是结果返回:EEE1和EEE2。
字符串中没有空格,Core数据中的数据类型是NSString。
例如,如果我将中心名称改为HCC1 ---我得到...... GSZ4,HCC6,HCLH,HCC2,HCC4,HCC1? WTF?
我必须遗漏一些简单的东西。
中心是NSSet。
修改的
//-com.apple.CoreData.SQLDebug 1
-(NSArray*)getBuildings:(BOOL)shouldFilter {
NSManagedObjectContext* context = [RKManagedObjectStore defaultStore].mainQueueManagedObjectContext;
NSFetchRequest* fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Buildings"];
if(shouldFilter) {
NSSortDescriptor* descriptor = [NSSortDescriptor sortDescriptorWithKey:@"buildingname" ascending:YES];
fetchRequest.sortDescriptors = @[descriptor];
//fetchRequest.predicate = [NSPredicate predicateWithFormat:@"SUBQUERY(centres, $centre, $centre.centrename == %@).@count > 0", @"HCC1"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"ANY centres.centrename='HCGS'"];
}
NSError* error = nil;
NSArray* buildings = [context executeFetchRequest:fetchRequest error:&error];
NSLog(@"Size of the centres: DUDE %lu: %i", (unsigned long)[[[[buildings objectAtIndex:0] centres] allObjects] count], shouldFilter);
return buildings;
}
我需要获取与过滤中心相关联的建筑物,因为我正在通过建筑物对我的UITableView进行分组。