我正在使用常见的单例模式,如下所示:
+ (SomeClass *)sharedInstance {
static SomeClass *__sharedInstance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
__sharedInstance = [[SomeClass alloc] init];
});
return __sharedInstance;
}
我知道 SomeClass 对象在我第一次调用 [SomeClass sharedInstance] 时被实例化,但是,SomeClass 什么时候被释放?
这是在 ARC 下,所以编译器什么时候释放 SomeClass 静态对象?它是否保证在我的应用程序的剩余生命周期中都存在?