我无法弄清楚 Restkit 是否能够下载本地不存在的对象,特别是当外键在 Core Data 中以一对一关系引用该缺失对象时。
举个例子: - 联系人 1 指的是公司 2
联系人 1 存在于本地数据库中,但公司 2 不存在
当用户在 UI 中检查联系人 1 的详细信息时,会执行联系人 1 的 GET
GET 返回一个 JSON,其中包含属性 company_id = 2 的其他联系方式
我已经通过外键约定设置了 Restkit,我将外键存储在联系人对象(companyID)中,并将其链接到存储在公司对象中的远程标识符(标识符):
[contactResponseMapping addConnectionForRelationship:@"forCustomer" connectedBy:@{@"companyID" : @"identifier"}]
在这种情况下,如果本地数据库中不存在实体(由 company_id 引用),我无法配置 restkit 来下载实体。
这可能吗?
另一种解决方法是覆盖 companyID 设置器并仔细检查实体是否存在,如果不下载实体,尽管这对我来说并不理想,因为我已经设置了一个引擎,每次编辑对象时都会收到通知并发布它到服务器。这意味着我必须阻止线程执行,直到下载链接对象。
这种机制也称为延迟加载吗?或保湿实体?我找不到任何其他类似的案例。
希望你能帮忙,对此有点疯狂。非常感谢。
PS:我正在使用restkit 0.21.0(即Blake Watters确认稳定的最新开发版本)