+ (instancetype)sharedInstance {static <#Class Name#> *instance = nil;static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{instance = [[super allocWithZone:NULL] init];});return instance;}/* 重写该方法是防止对象通过 `alloc` 方法创建会产生新的对象;* 官方解释:`alloc` 由于历史原因会调用 `allocWithZone:` 方法 */+ (instancetype)allocWithZone:(struct _NSZone *)zone {return [self sharedInstance];}/* 防止当前对象调用 `copy` 方法产生崩溃问题;* 官方解释: 对象调用 `copy` 方法, 需遵循 NSCopying 协议,并实现 `copyWithZone: 方法,否则会出现异常(crash)。`*/- (instancetype)copyWithZone:(struct _NSZone *)zone {return self;}
- 点赞
- 收藏
- 分享
- 文章举报
TengFengLian发布了3 篇原创文章 · 获赞 0 · 访问量 936私信关注