将NSFetchRequest结果类型设置为NSDictinaryResultType时,将返回零对象。如果我删除setPropertiesToFetch和setResultType,则返回所有对象。
有什么想法吗?
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]);
}
答案 0 :(得分:10)
问题是我需要在插入新对象后保存mangedObjectContext。一旦我这样做,我得到了我正在寻找的结果。