【问题标题】:Using Multiple Base URLs and Multiple Object Managers (RestKit)使用多个基本 URL 和多个对象管理器 (RestKit)
【发布时间】:2014-03-01 15:38:32
【问题描述】:

我正在尝试在一个 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.

【问题讨论】:

    标签: ios api restkit


    【解决方案1】:

    您希望将所有对象管理器存储在某个地方。如果使用不保留的 ARC,则希望存储在数组/字典(可能带有 URL 的键)/属性(强)中。

    在您显示的示例代码中,没有保留第一个对象管理器,因为 RestKit 为您保存一个引用(单例)。通常,当使用多个对象管理器时,您希望忽略单例存储并自己管理所有对象管理器引用。

    我建议使用数据控制器,它在内部隐藏对象管理器属性,而是根据您的数据模型对象公开 API。在内部,它可以为收到的每个请求选择适当的对象管理器。

    【讨论】:

    • 谢谢!你有一个链接到你的第三段关于如何做的任何事情吗?从概念上讲,我了解您的用途,但从未这样做过-
    • 目前我已经设置了模型。然后我还有一个视图控制器。你说的是这个吗?
    • 我说的是从 RestKit 类中抽象出视图控制器。所以视图控制器只是想获取一些数据或保存一些数据。数据控制器在这些术语中提供了一个接口,它使 RestKit 请求对请求进行操作。没有关于这方面的文档(据我所知)。
    • 所以专门说这个AppDelegate,我是不是直接把代码中的retain去掉?
    • 删除保留,是的,但是你需要像self.foursquareManager = foursquareManager; 这样的东西才能保留实例(通过强属性)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2014-05-20
    • 2018-02-17
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    相关资源
    最近更新 更多