Skip to content

Instantly share code, notes, and snippets.

@bartjacobs
Created May 28, 2017 09:20
Show Gist options
  • Save bartjacobs/5b8dcee0d834310a0b5e255c12050d6e to your computer and use it in GitHub Desktop.
Save bartjacobs/5b8dcee0d834310a0b5e255c12050d6e to your computer and use it in GitHub Desktop.
What Is a Singleton and How To Create One In Swift (https://cocoacasts.com/what-is-a-singleton-and-how-to-create-one-in-swift/)
import Foundation
enum API {
static let baseURL = URL(string: "https://cocoacasts.com")!
}
class NetworkManager {
// MARK: - Properties
private static var sharedNetworkManager: NetworkManager = {
let networkManager = NetworkManager(baseURL: API.baseURL)
// Configuration
// ...
return networkManager
}()
// MARK: -
let baseURL: URL
// Initialization
private init(baseURL: URL) {
self.baseURL = baseURL
}
// MARK: - Accessors
class func shared() -> NetworkManager {
return sharedNetworkManager
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment