【问题标题】:Does AlamoFire use a singleton to abstract it's client class?AlamoFire 是否使用单例来抽象它的客户端类?
【发布时间】:2017-03-17 08:32:11
【问题描述】:

我问是因为没有sharedInstance 电话。

我查看了源代码,但我无法弄清楚到底发生了什么。 他们似乎在调用Alamofire 类型的方法,他们使用的是静态方法吗?

来自他们的 Github README.md 文件的示例:

Alamofire.request("https://httpbin.org/get")


我目前在我的客户类中使用单例,因为客户很昂贵。 但是方法调用很长。

MyClient.sharedInstance.myMethod(withParameter:"000")

AlamoFire 如何处理这个问题?

【问题讨论】:

    标签: swift singleton alamofire static-methods


    【解决方案1】:

    Alamofire.request 调用 SessionManager.default.request

    SessionManager.default 是一个单例

    您可以将相同的方法添加到您的 MyClient

    extension MyClient{
        static func myMethod(withParameter:String){
            sharedInstance.myMethod(withParameter:withParameter)
        }
    }
    

    【讨论】:

    • 效果很好。 myMethod 可以通过两种不同的方式调用,这是默认行为吗?
    • 这不会破坏单例的目的吗?换句话说,他们应该首先使用类方法吗?
    • 1) 您可以将 sharedInstance 设为私有或文件私有 2) 我不知道他们为什么这样做。
    猜你喜欢
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    相关资源
    最近更新 更多