如何从 Core Data 获取模型的实际属性值?

Posted

技术标签:

【中文标题】如何从 Core Data 获取模型的实际属性值?【英文标题】:How do I get the actual property values of my model from Core Data? 【发布时间】:2014-01-28 00:20:21 【问题描述】:

我正在尝试获取实体的所有对象。我执行 NSFetchRequest 并以“故障”格式成功返回对象。我的问题是,我怎样才能更进一步并在我的获取结果中访问实际的对象属性?这似乎应该很简单,但我错过了一些东西。具体来说,我如何从下面的“结果”中获取值。我尝试遍历结果,将当前对象分配给 NSDictionary,然后通过 objectForKey 访问对象属性,但这不起作用。我已经阅读了苹果开发者文档、在线论坛、堆栈溢出问题,但没有运气。请帮忙!我可以将数据保存到数据库中。但是您如何使用核心数据从数据库中获取怪异的数据!!??

NSManagedObjectContext *context = [self managedObjectContext];
NSFetchRequest *fetchReq = [[NSFetchRequest alloc] initWithEntityName:@"MyEntity"];

NSError *error = nil;
NSArray *result = [context executeFetchRequest:fetchReq error:&error];

【问题讨论】:

【参考方案1】:

默认情况下,对象将作为错误返回,但只要您访问任何数据,它就会工作。例如,如果您的 MyEntity 有一个名为“name”的值,您应该可以这样做

for (MyEntity *myEntity in result) 
  NSLog(@"My entity name: %@", myEntity.name);

你应该得到你期望的结果。

【讨论】:

以上是关于如何从 Core Data 获取模型的实际属性值?的主要内容,如果未能解决你的问题,请参考以下文章

在 Core Data 中更改托管对象模型的属性值时崩溃

Xcode 4 Core Data:如何使用在数据模型编辑器中创建的获取属性

如何使用 Core Data 中多个实体的属性获取属性值?

如何确保从上下文而不是缓存中获取 Core Data Fetched Property?

如何根据来自多个 Core Data 属性的计算值进行排序

仅获取共享特定属性值的 Core Data 对象