classSingletonObject {
classvarsharedInstance :SingletonObject{
structStatic {
staticvaroncetoken :dispatch_once_t=0
staticvarinstance :SingletonObject? =nil
}
dispatch_once(&Static.oncetoken) {
Static.instance =SingletonObject()
returnStatic.instance!
}
}