我正在尝试在 iOS 应用程序中使用两个 API。
我正在使用 RestKit 并按照本文的指南进行操作:https://github.com/RestKit/RestKit/wiki/Using-Multiple-Base-URLs-(and-Multiple-Object-Managers)
既然它不再是一个选项,我该怎么做才能代替此代码中的
retain
?
AppDelegate.m
RKObjectManager *flickrManager =
[RKObjectManager objectManagerWithBaseURL:flickrBaseUrl]; // <-- shared singleton
RKObjectManager *foursquareManager =
[[RKObjectManager objectManagerWithBaseURL:foursquareBaseUrl] retain]; // <-- you must retain every other instance.
您想将所有对象管理器存储在某个地方。如果您不使用 ARC,则需要存储在数组/字典(可能带有 URL 的键)/属性(强)中。
在您展示的示例代码中,第一个对象管理器没有保留,因为 RestKit 为您保留了一个引用(单例)。一般来说,当使用多个对象管理器时,您希望忽略单例存储并自己管理所有对象管理器引用。
我建议使用一个数据控制器,它在内部隐藏对象管理器属性,而是公开基于数据模型对象的 API。在内部,它可以为收到的每个请求选择适当的对象管理器。