user10375884
user10375884

Reputation:

Declaring Alamofire.SessionManager once in the class for using it in various utility functions inside the class

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.

Upvotes: 0

Views: 485

Answers (1)

marosoaie
marosoaie

Reputation: 2361

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(...)
        ...
    }

}

Upvotes: 1

Related Questions