0

So I am making a utility class for Alamofire networking for my project.

I have various functions inside it like:

func createAccount()

func login()

I want to use fixed time limit for all these function's reuqests and responses.

I have known that this works for the same:

let configuration = URLSessionConfiguration.default
        configuration.timeoutIntervalForRequest = 10
        configuration.timeoutIntervalForResource = 10
        AFManager = Alamofire.SessionManager(configuration: configuration)

However, I don't want to initialize AFManager in all the utility functions. I want a single declaration of it. How can I do the same? I am not able to get it.

  • Are you looking for "Singleton" pattern? https://stackoverflow.com/questions/37953317/singleton-with-properties-in-swift-3 – Larme Sep 24 '18 at 14:22

1 Answers1

1

What you need is called a property:

class NetworkManager {

    private let manager: Alamofire.SessionManager = {
        let configuration = URLSessionConfiguration.default
        configuration.timeoutIntervalForRequest = 10
        configuration.timeoutIntervalForResource = 10
        retrurn Alamofire.SessionManager(configuration: configuration)
    }()

    func createAccount() {
        manager.request(...)
        ...
    }

    func login() {
        manager.request(...)
        ...
    }

}
marosoaie
  • 2,352
  • 23
  • 32