Skip to content

Instantly share code, notes, and snippets.

@ivangodfather
Last active August 29, 2015 14:16
Show Gist options
  • Save ivangodfather/c19daf03e3b94c15781a to your computer and use it in GitHub Desktop.
Save ivangodfather/c19daf03e3b94c15781a to your computer and use it in GitHub Desktop.
class Singleton {
class var sharedInstance: Singleton {
var name: String?
struct Static {
static var instance: Singleton?
static var token: dispatch_once_t = 0
}
dispatch_once(&Static.token) {
Static.instance = Singleton()
}
return Static.instance!
}
}
@lilyball
Copy link

Swift 1.1:

class Singleton {
    class var sharedInstance: Singleton {
        get {
            struct Static {
                static let instance = Singleton(name: "sharedInstance")
            }
            return Static.instance
        }
    }

    var name: String

    init(name: String) {
        self.name = name
    }
}

Swift 1.2:

class Singleton {
    static let sharedInstance = Singleton(name: "sharedInstance")

    var name: String

    init(name: String) {
        self.name = name
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment