2

如何从 Core Data 实体及其 1:m 子实体创建JSON对象?NSJSONSerialization

当尝试在将获取请求转换为NSDictionary之前将其输出到 a 时JSON,我得到一个NSDictionary没有任何关系的单位,或者我的应用程序在设置propertiesToFetch为关系时崩溃。

这是我的代码:

NSFetchRequest *request = [NSFetchRequest 
   fetchRequestWithEntityName:@"ContrSector"];
request.resultType = NSDictionaryResultType;
request.propertiesToFetch = @[@"industries"];
NSError *error;
NSArray *result = [self.managedObjectContext 
    executeFetchRequest:request error:&error];

这样做的正确方法是什么?

4

1 回答 1

1

propertiesToFetch期望 的实例NSPropertyDescription,因此请尝试将 @"industries" 替换为:

NSDictionary *attributes = [[NSEntityDescription entityForName"@ContrSector" inManagedObjectContext:self.managedObjectContext] relationshipsByName];
NSAttributeDescription *industriesRelationship = [attributes objectForKey:@"industries"];

request.propertiesToFetch = @[industriesRelationship];

编辑:我没有意识到这是一个多对多的关系,来自文档:

属性描述可以表示属性、一对一关系或表达式。属性或关系描述的名称必须与获取请求实体上的描述名称匹配。

于 2013-07-03T15:17:45.323 回答