两个端点结果之间的外键映射 RESTKIT Core Data

Posted

技术标签:

【中文标题】两个端点结果之间的外键映射 RESTKIT Core Data【英文标题】:Foreign key mapping RESTKIT Core Data between two end point results 【发布时间】:2013-08-02 10:21:10 【问题描述】:

是否有可能使用外键连接两个端点结果。

End Point 1 :
"series":["id":2,"name":"My Series","role":"student","student_id":15,"instructor_ids":[13],"sequential":false,"series_id":1,"user_assignment_ids":[3,4]] 

End Point 2 :
"Assignments":[ "id":3,"Name":"Assignment1", "seriesID":2, "id":4,"Name":"Assignment1","seriesID":2, "id":6,"Name":"Assignment1","seriesID":null]

在以上两个端点我有外键“user_assignment_ids”。

@class UserAssignment;
@interface UserSeries : NSManagedObject

@property (nonatomic, retain) NSNumber * id;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSString * role;
@property (nonatomic, retain) NSNumber * sequential;
@property (nonatomic, retain) NSNumber * seriesID;
@property (nonatomic, retain) NSNumber * studentID;
@property (nonatomic, retain) id userAssignmentIDS;
@property (nonatomic, retain) NSSet *userAssignment;
@end

@interface UserSeries (CoreDataGeneratedAccessors)

- (void)addUserAssignmentObject:(UserAssignment *)value;
- (void)removeUserAssignmentObject:(UserAssignment *)value;
- (void)addUserAssignment:(NSSet *)values;
- (void)removeUserAssignment:(NSSet *)values;

@end

@class UserSeries;

@interface UserAssignment : NSManagedObject

@property (nonatomic, retain) NSNumber * assignmentID;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSNumber * seriesID;
@property (nonatomic, retain) UserSeries *userSeries;

@end

谁能告诉我使用外键连接两个端点的可能方法吗?

【问题讨论】:

【参考方案1】:

您使用RKConnectionDescription 执行外键映射。文档页面 here 上有许多示例和指南。

【讨论】:

是的,我提到了那些文件。在我的场景中,有两个不同的终点和两个不同的结果。如何一次调用这两个服务? 你不能那样做。您可以同时运行两者,但不能保证外键链接。按顺序运行它们或更改请求/JSON 响应,因此它们不是 2 个不同的请求。 所以你是说我需要将两个结果都保留在一个端点对吗? 这是一种选择。另一种是先运行 Series 请求,然后在保存后运行 Assignments 请求。在您尝试使用它之前需要保存外键信息,或者它需要全部在同一个响应中。 你能否给我一个参考,这种顺序调用两种不同服务的外键,这对我来说很好。 :)

以上是关于两个端点结果之间的外键映射 RESTKIT Core Data的主要内容,如果未能解决你的问题,请参考以下文章

Restkit:外键关系的存根

Restkit 在嵌套的外键关系中使用 @parent

映射后向 RestKit 映射结果字典添加值

RestKit 按 ID 的属性关系

映射到多个主键的外键列

组件映射