我想在我的提取请求中使用setPropertiesToFetch来限制从我的商店检索到的数据,但它似乎没有效果。当我使用它并显示返回到控制台的对象时,我可以看到我的所有属性都在那里。无论是否设置属性,都会显示相同的数据。所有关系都显示为故障,但属性的所有数据都在那里。setPropertiesToFetch似乎没有任何效果
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Entity" inManagedObjectContext:context];
NSDictionary *entityProperties = [entity propertiesByName];
[fetchRequest setEntity:entity];
[fetchRequest setFetchBatchSize:20];
[fetchRequest setIncludesPendingChanges:NO];
[fetchRequest setReturnsObjectsAsFaults:NO];
[fetchRequest setPropertiesToFetch:[NSArray arrayWithObjects:[entityProperties objectForKey:@"myAttrib"], nil]];
该提取似乎返回每个对象相同的数据有或没有最后一行。有任何想法吗?
是的,我真的以为。但是当关系错误被显示时,我认为描述会显示属性错误。有趣的,我会看看那个!谢谢! – 2009-12-07 19:41:19
我有一个简单的问题。出于某种原因,它不允许多对多关系,只允许属性和1-1关系。这是正确的还是我碰到某种错误?我得到: '对许多关系无效...传递给setPropertiesToFetch:' – 2009-12-10 16:11:07
从-setPropertiesToFetch文档:“属性描述可能表示属性,一对一关系或表达式。”我认为对于多对多的关系,他们推荐使用-setRelationshipKeyPathsForPrefetching: – 2009-12-10 18:06:15