2012-03-24 66 views
2

我正在使用核心数据为我的ios应用程序,我想知道我将如何去从实体表中检索整个列?例如,我很抱歉从我的表中获取主键。核心数据如何从实体检索列

在sql中我只是做从MYTABLE选择名称。

回答

7

我认为你可以这样来做:

NSManagedObjectContext *context = [self managedObjectContext]; 

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"--table--" inManagedObjectContext:context]; 
[fetchRequest setEntity:entity]; 
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:nil]; 

NSMutableArray *elementsFromColumn = [[NSMutableArray alloc] init]; 
for (NSManagedObject *fetchedObject in fetchedObjects) { 
    [elementsFromColumn addObject:[fetchedObject valueForKey:@"--column--"]]; 
} 

所以,你必须从所有的表的特定列的元素。 希望它是你在找什么:)

+0

工作。感谢发布。现在如果只有我能弄清楚如何让这个自动完成功能完成,我会很开心。 – user597608 2012-03-24 22:49:23

+0

@ bs7所以当我executeFetchRequest时CoreData获取所有可用的列,或者它只在我调用valueForKey时获取? – onmyway133 2013-10-19 08:54:28

+0

为我工作..大获好评! – TharakaNirmana 2014-07-02 07:23:31

1

看看documentation NSFetchRequest。您可以要求它仅返回包含特定属性的字典 - 这与您将获得的关系密切相关。感兴趣的方法是setResultType:setPropertiesToFetch: