Core Data 如何从实体中检索列

Posted

技术标签:

【中文标题】Core Data 如何从实体中检索列【英文标题】:Core Data how to retrieve a column from an entity 【发布时间】:2012-03-24 17:05:51 【问题描述】:

我正在为我的 ios 应用程序使用 Core Data,我想知道如何从实体表中检索整个列?例如,我对从表中获取主键非常感兴趣。

在 sql 中,我会从 MYTABLE 中选择名称。

【问题讨论】:

【参考方案1】:

我认为你可以这样做:

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--"]];

因此,您拥有表格特定列中的所有元素。 希望这就是你要找的:)

【讨论】:

那行得通。感谢您发布。现在,如果我能弄清楚如何完成这个该死的自动完成功能,我会很高兴的。 @bs7 所以 CoreData 在我执行 FetchRequest 时获取所有可用列,或者它仅在我调用 valueForKey 时获取?【参考方案2】:

查看 NSFetchRequest 的 documentation。您可以要求它返回仅包含特定属性的字典 - 这与您将获得的一样接近。感兴趣的方法是setResultType:setPropertiesToFetch:

【讨论】:

以上是关于Core Data 如何从实体中检索列的主要内容,如果未能解决你的问题,请参考以下文章

在 Core Data 中替换多对多关系中的实体

IOS/objective-c/core-data:如何从相关实体获取属性

本机查询 - 如何仅从数据库中检索实体的特定列

Core Data 中线程安全的唯一实体实例

iPhone Core Data 关系故障

如何从 Core Data 中的关系相关实体获取属性?