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 删除 coredata 中特定对象的所有对象