class func shareInstance() -> Team {
struct TeamStatic{
static let staticInstance = Team()
}
return TeamStatic.staticInstance
}
private let _SingletonASharedInstance = Team()
class func shareInstance1() -> Team {
return _SingletonASharedInstance
}
以方法形式调用
class var sharedInstance : Team{
struct Static {
static let instance:Team = Team()
}
return Static.instance
}
class var sharedInstance1:Team {
var predicate:dispatch_once_t = 0
struct Static1 {
static var onceToken:dispatch_once_t = 0
static var instance:Team?
}
dispatch_once(&Static1.onceToken, { () -> Void in
Static1.instance = Team()
})
return Static1.instance!
}
以变量形式调用
第二种,保证只会调用一次,考虑线程安全。