将CoreData实体关系作为NSDictionary获取

时间:2015-12-04 12:12:21

标签: objective-c core-data

我的模型看起来像这样: Valid XHTML

我正在尝试获取一系列文章(作为NSDictionary)并且还包括他们的图像。我的代码看起来像这样:

NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Article"];
request.resultType = NSDictionaryResultType;
request.sortDescriptors = @[[[NSSortDescriptor alloc] initWithKey:@"date_publish" ascending:NO]];
NSArray *articles = [[CoreData sharedInstance].backgroundContext executeFetchRequest:request error:nil];

但是生成的数组不包含有关文章图像的任何内容。我也尝试使用NSExpressionDescription

NSExpressionDescription *imageExpression = [[NSExpressionDescription alloc] init];
imageExpression.name = @"image";
imageExpression.expression = [NSExpression expressionForEvaluatedObject];
imageExpression.expressionResultType = NSUndefinedAttributeType;

request.propertiesToFetch = @[@"article_id", @"title", @"content_lead", @"content_full", @"date_create", @"date_update", @"date_publish", imageExpression];

现在我可以在控制台中看到类似的东西

image = "0xd000000004040002 <x-coredata://1F512858-AAF2-4546-9646-3395CA182CFE/Article/p257>";

这不是很有用,它应该是由NSDictionaries组成的数组。

我如何获取实体关系作为NSDicionaries?

1 个答案:

答案 0 :(得分:1)

您需要告诉fetch使用relationshipKeyPathsForPrefetching包含关系。但是,我不确定它是否适用于字典返回类型,但值得测试。

您可能只能预览关系另一侧的对象NSManagedObject实例。如果是这种情况,那么你会想要提出这个问题的雷达。