Swift 4.0学习之:单例

单例


Swift中的单例非常简单,往小了说,用 let 去修饰,写在类外,就是一个全局可用的单例。
如果想要像OC一样写一个单例类,也非常的简单,如下

//单例类
import UIKit
//仿OC写法
class danli: NSObject {
    static let instance: danli = danli()
    class func sharedDanli() -> danli {
        return instance
    }
}
//简便写法
class danli2 {
    static let `default` = danli2()
}

相比OC要先在.h文件里声明一个方法,又要在.m里面写实现,又要加一个线程锁是不是简单了很多,OC写法如下:

//首先.h文件里声明
//单例类
@interface danli : NSObject
+ (instancetype)sharedDanli;
@end

//然后.m文件里写实现
@implementation danli
+ (instancetype)sharedDanli {
    static danli *dan = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        dan = [self new];
    });
    return dan;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章