RKConnectionDescription 与 Restkit 0.20.3 不稳定
Posted
技术标签:
【中文标题】RKConnectionDescription 与 Restkit 0.20.3 不稳定【英文标题】:RKConnectionDescription unstable with Restkit 0.20.3 【发布时间】:2014-04-22 15:20:15 【问题描述】:我有来自两个不同 Web 服务的两个实体,它们具有多对多关系。
实体 A NSString *id, NSString *详细信息
实体 B NSString *键, NSString *值, NSString *类型, NSString *foreignId
我尝试映射实体 B:
+ (RKObjectMapping *)mapping RKEntityMapping *mapping = [RKEntityMapping mappingForEntityForName:NSStringFromClass([self class]) inManagedObjectStore:[RKObjectManager sharedManager].managedObjectStore];
[mapping addAttributeMappingsFromDictionary:@
@"key": @"key",
@"id":@"foreignId",
@"type":@"type",
@"value":@"value"
];
mapping.identificationAttributes = @[@"featureKey",@"type",@"foreignID"];
[mapping addConnectionForRelationship:@"homeApplianceDatas" connectedBy:@@"foreignId":@"id"];
return mapping;
在我的测试 json 中,所有类型 B 的实体都具有相同的 foreignID“汽车”,但只有少数实体与“A”实体有关系(大约 15%)!!!
有什么想法吗?
【问题讨论】:
这 15% 是在单个响应中收到的吗(另外 85% 来自之前的响应)? B 实体的服务可能会被触发多次,有时甚至在实体 A 存在之前就触发 【参考方案1】:当使用外键映射时,如果没有找到目标对象,则将(可以)建立 mo 连接。稍后不会再次处理该连接。
另外(这很可能被认为是 RestKit 中的一个错误),任何新的外键映射关系内容替换任何以前的关系内容。没有可用于修改此行为的 API(就像嵌套关系处理分配策略一样)。
因此,在许多情况下,您需要自己处理外键信息,以确保需要连接的所有内容都已实际连接。您可以针对分配策略提出针对 RestKit 的问题,但第一个问题是您的设计问题。
【讨论】:
我使用了一种解决方法来添加缺少的连接,但我想知道为什么 rest kit 会造成这么多麻烦。休息套件的问题在于它没有标准行为。有时它连接所有实体,有时连接几个,有时没有。 我需要了解更多关于测试的信息。如果你两次运行相同的测试,你应该得到完全相同的结果......以上是关于RKConnectionDescription 与 Restkit 0.20.3 不稳定的主要内容,如果未能解决你的问题,请参考以下文章
在没有 RestKit 的情况下复制 RKConnectionDescription