使用GCD的dispatch_once在Objective-C中创建单例模式。
使用GCD的dispatch_once在Objective-C中创建单例模式。
如果您的目标是iOS 4.0或更高版本
使用GCD,在Objective-C中创建单例(线程安全),这是最好的方法吗?
+ (instancetype)sharedInstance { static dispatch_once_t once; static id sharedInstance; dispatch_once(&once, ^{ sharedInstance = [[self alloc] init]; }); return sharedInstance; }
admin 更改状态以发布 2023年5月24日
instancetype
instancetype
只是许多语言扩展之一,每次新发布都会添加更多扩展。
了解它,热爱它。
并将其作为一个例子,展示如何关注低级详情可以为您提供将Objective-C转换为强大新方法的见解。
+ (instancetype)sharedInstance { static dispatch_once_t once; static id sharedInstance; dispatch_once(&once, ^ { sharedInstance = [self new]; }); return sharedInstance; }
+ (Class*)sharedInstance { static dispatch_once_t once; static Class *sharedInstance; dispatch_once(&once, ^ { sharedInstance = [self new]; }); return sharedInstance; }