单例

单例对象应该使用线程安全的模式创建共享的实例。

  1. + (instancetype)sharedInstance {
  2. static id sharedInstance = nil;
  3. static dispatch_once_t onceToken;
  4. dispatch_once(&onceToken, ^{
  5. sharedInstance = [[self alloc] init];
  6. });
  7. return sharedInstance;
  8. }

这将会预防有时可能产生的许多崩溃