【问题标题】:Accessing a value via dictionary通过字典访问值
【发布时间】:2013-06-13 09:25:42
【问题描述】:

我使用以下代码通过 coredata 访问 JSON 值,

 NSManagedObjectContext *context = [[DataAccessLayer sharedInstance] managedObjectContext];
 NSArray *existingResults = [context fetchObjectsForEntityName:NSStringFromClass([Serchtrial class]) withSortColumn:nil withSortDescending:FALSE withPredicate:nil];
 NSLog(@"->%@",existingResults);
 Serchtrial *result;
 for(int i=0;i<[existingResults count];i++)
 {
    result=[existingResults objectAtIndex:i];
     [mydata setValue:result forKey:[NSString stringWithFormat:@"checka%d",i]];
 }
 NSLog(@"mydata age%@",[mydata objectForKey:@"checka0"]);

Log返回结果如下

mydata age<Serchtrial: 0x8c80a10> (entity: Serchtrial; id: 0x8c81990 <x- coredata://39E99C99-5639-4C67-86D5-D9B97C79EDF2/Serchtrial/p2> ; data: {
age = "18-25";
gender = Female;
keywords = "AB-ve,o+ve";
"trial_Id" = 0;
"trial_desc" = nil;
})

但我只想要单个字典中的数据

data: {
age = "18-25";
gender = Female;
keywords = "AB-ve,o+ve";
"trial_Id" = 0;
"trial_desc" = nil;
}

我应该对我的代码进行什么更改,请帮助解决这个问题。

【问题讨论】:

  • 你能解释一下吗?现在你有一个 Serchtrial 对象数组,为什么需要在字典中序列化它们?
  • Serchtrial 是一个 coredata 对象..
  • 是的,从您的问题中可以清楚地看出这一点。但是你需要它作为字典的原因是什么?您可以像使用字典一样访问对象的任何属性。
  • 但是coredata包含一组值...如何直接检索coredata中的一组值

标签: ios json core-data dictionary


【解决方案1】:

要使获取请求返回字典而不是托管对象,您必须设置

[request setResultType:NSDictionaryResultType];

对于NSFetchRequest

【讨论】:

  • 我应该在哪里提到这个[request setResultType:NSDictionaryResultType];
  • @Globastechn:获取请求的创建位置,可能在fetchObjectsForEntityName:... 方法中。 - 那不是Core Data内置的方法,从哪里来的?
  • @Globastechn:如果您需要更多信息,请告诉我。
猜你喜欢
  • 2020-03-16
  • 1970-01-01
  • 2015-10-24
  • 1970-01-01
  • 1970-01-01
  • 2019-11-14
  • 2016-11-19
  • 1970-01-01
  • 2015-03-09
相关资源
最近更新 更多