+ (instancetype)sharedService { static id instance; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ instance = [self new]; }); return instance; }
用id而不是实际的类名,用dispatch_once保证只调用一次,用[self new]创建对象,也不用实际的类名。