5
将NSFetchRequest结果类型设置为NSDictinaryResultType时,返回零对象。如果我删除setPropertiesToFetch和setResultType,则返回所有对象。核心数据NSFetchRequest setResultType:NSDictionaryResultType不起作用
任何想法?
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Alert" inManagedObjectContext:_managedObjectContext];
[request setEntity:entity];
NSDictionary *entityProperties = [entity propertiesByName];
[request setPropertiesToFetch:[NSArray arrayWithObject:[entityProperties objectForKey:@"test"]]];
[request setResultType:NSDictionaryResultType];
NSError *error;
NSArray *result = [_managedObjectContext executeFetchRequest:request error:&error];
if (result == nil) {
NSLog(@"Error: %@", [error localizedDescription]);
}
是的,这是一个真正的陷阱。使用NSDictionaryResultsType时,您无法获得托管对象上下文的挂起更改结果。 – Aderstedt