RKRelationshipConnectionOperation managedObject 在启动方法中无效
RKRelationshipConnectionOperation managedObject invalid in start method
我在使用 RestKit 并尝试使用外键连接两个实体时遇到问题。
假设我有两个实体 A 和 B 以及一个关系 A <->> B
我通过以下方式创建连接
RKEntityMapping *aEntity = ...;
[aEntity addAttributeMappingsFromDictionary: ...]
RKEntityMapping *bEntity = ...;
[bEntity addAttributeMappingsFromDictionary: ...]
RKConnectionDescription *aConnection = [[RKConnectionDescription alloc]
initWithRelationship:[[b.entity
relationshipsByName][@"a"]
attributes:@{@"aID" : @"id"}];
[bEntity addConnection:aConnection];
当从服务器接收到数据时,出现 EXC_BAD_INSTRUCTION
异常。
异常在以下方法中触发:
static NSDictionary *RKConnectionAttributeValuesWithObject(RKConnectionDescription *connection, NSManagedObject *managedObject)
在 id sourceValue = [managedObject valueForKey:sourceAttribute];
行
此方法在RKRelationshipConnectionOperation
runloop 中调用。
我注意到 managedObject
在创建操作时有效(在 init 中),但在 start
方法中无效(调试器给出地址,但没有打印对象信息)
我找不到任何相关问题,所以我确定我遗漏了什么
编辑:关于评论,也许这就是为什么这不起作用的原因。
我在所有 A 实体之前获取。
在单独的获取中,我获取了一些 B 实体。 JSON 类似于
{
"id" : 1,
"someattr" : "somevalue",
"aID" : 5
}
更新到 Restkit 0.25 解决了这个问题。
我在使用 RestKit 并尝试使用外键连接两个实体时遇到问题。
假设我有两个实体 A 和 B 以及一个关系 A <->> B 我通过以下方式创建连接
RKEntityMapping *aEntity = ...;
[aEntity addAttributeMappingsFromDictionary: ...]
RKEntityMapping *bEntity = ...;
[bEntity addAttributeMappingsFromDictionary: ...]
RKConnectionDescription *aConnection = [[RKConnectionDescription alloc]
initWithRelationship:[[b.entity
relationshipsByName][@"a"]
attributes:@{@"aID" : @"id"}];
[bEntity addConnection:aConnection];
当从服务器接收到数据时,出现 EXC_BAD_INSTRUCTION
异常。
异常在以下方法中触发:
static NSDictionary *RKConnectionAttributeValuesWithObject(RKConnectionDescription *connection, NSManagedObject *managedObject)
在 id sourceValue = [managedObject valueForKey:sourceAttribute];
此方法在RKRelationshipConnectionOperation
runloop 中调用。
我注意到 managedObject
在创建操作时有效(在 init 中),但在 start
方法中无效(调试器给出地址,但没有打印对象信息)
我找不到任何相关问题,所以我确定我遗漏了什么
编辑:关于评论,也许这就是为什么这不起作用的原因。 我在所有 A 实体之前获取。 在单独的获取中,我获取了一些 B 实体。 JSON 类似于
{
"id" : 1,
"someattr" : "somevalue",
"aID" : 5
}
更新到 Restkit 0.25 解决了这个问题。