单例模式
至于什么是单例模式,我也不多说,我只说说一般怎么实现。在 Objective-C 中,实现单例的方法已经很具体了,虽然有别的方法,但是一般都是用一个标准的方法了,下面来看看。
OBJECTIVE-C
@interface Tool : NSObject <NSCopying>
+ (instancetype)sharedTool;
@end
@implementation Tool
static id _instance;
+ (instancetype)sharedTool {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_instance = [[Tool alloc] init];
});
return _instance;
}
@end
这里之所以将单例模式,是因为其中用到了 GCD 的 dispatch_once
方法。下面看 Swift 中的单例模式,在Swift中单例模式非常简单!想知道怎么从 OC 那么复杂的方法变成下面的写法的,请看这里
SWIFT
class Tool: NSObject {
static let sharedTool = Tool()
// 私有化构造方法,阻止其他对象使用这个类的默认的'()'构造方法
private override init() {}
}