单例
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;
}
这篇博客介绍了Swift 4.0中如何创建单例,比较了Swift与Objective-C(OC)实现单例的差异,指出Swift的实现方式更为简洁,无需额外的线程锁。
2144

被折叠的 条评论
为什么被折叠?



