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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章