我正在尝试在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.
答案 0 :(得分:1)
您希望将所有对象管理器存储在某处。如果使用ARC,则不保留,您希望存储在数组/字典(可能包含URL的键)/ properties(strong)中。
在您显示的示例代码中,不保留第一个对象管理器,因为RestKit为您保存了一个引用(单例)。通常,在使用多个对象管理器时,您希望忽略单例存储并自行管理所有对象管理器引用。
我建议使用一个数据控制器,它在内部隐藏对象管理器属性,而是根据您的数据模型对象公开API。在内部,它可以为它收到的每个请求选择适当的对象管理器。