RestKit 与特定核心数据对象的关系连接,无需键映射

Posted

技术标签:

【中文标题】RestKit 与特定核心数据对象的关系连接,无需键映射【英文标题】:RestKit relationship connection to specific core data object without key mapping 【发布时间】:2014-05-23 18:40:52 【问题描述】:

问题:

在我的应用程序中,用户需要先通过登录屏幕。用户成功登录后,我会存储对该用户核心数据对象的引用。当此用户注销而另一个用户登录时,我的问题就出现了。我目前无法区分同一设备上的用户 A 数据和用户 B 数据。

对服务器的调用在标头中传递用户的凭据,但返回没有关于请求用户在映射期间使用的外键信息。我想将其设置为简单地使与用户的关系使用存储的引用。

这些关系往往是多对一(用户 > 电子邮件)或多对多(用户 > 会议)。

...

    heading: "My Email"
    body: "I didn't write much",
    ...
,
...

可能的解决方案:

    (Most Desired Solution) 在映射过程中执行连接 以某种方式将 RKEntityMapping 设置为自动在传入对象和引用的用户之间建立关系连接 请求服务器返回用户ID 这将允许使用 userID 键进行关系映射 映射后手动设置关系 使用 getObjectsAtPath:parameters:success:failure: 中的成功块连接用户和新收到的对象

非常感谢任何和所有反馈。谢谢。

【问题讨论】:

【参考方案1】:

(最需要的解决方案)在映射期间执行连接。不知何故将RKEntityMapping设置为自动建立传入对象和引用用户之间的关系连接

从你的描述中你真的没有什么可以触发这个。 如果您用来发出请求的 URL 中包含用户身份,那么您可以使用该 URL 并路由 metadata,否则您在这方面不走运。 (元数据的文档不是很好,请参阅this answer)

请求服务器返回userID。这将允许使用 userID 键发生关系映射

是的,那会起作用。

映射后手动设置关系。使用来自getObjectsAtPath:parameters:success:failure:success 块来连接用户和新收到的对象

是的,这也会起作用(尽管它会导致 2 次保存到数据存储,1 次没有关系,然后再建立它们)。

【讨论】:

以上是关于RestKit 与特定核心数据对象的关系连接,无需键映射的主要内容,如果未能解决你的问题,请参考以下文章

删除请求并将 RESTkit 与核心数据和线程同步

restkit:映射 to_many 与核心数据的关系

与 Core Data 和 RestKit 无关的关系

Restkit 删除 coredata 中特定对象的所有对象

Restkit 0.24.0:如何将对象(包括对多关系)序列化为 JSON

使用 RestKIt 在核心数据实体中映射 json 对象