通常のパターンを使用してシングルトン オブジェクトを実装しました。私の質問は: このオブジェクトを nil に戻して、後で [MySingleton sharedInstance] を呼び出したときにオブジェクトが再初期化されるようにすることは可能ですか?
// Get the shared instance and create it if necessary.
+ (MySingleton *)sharedInstance {
static dispatch_once_t pred;
static MySingleton *shared = nil;
dispatch_once(&pred, ^{
shared = [[MySingleton alloc] init];
});
return shared;
}
// We can still have a regular init method, that will get called the first time the Singleton is used.
- (id)init
{
self = [super init];
if (self) {
// Work your initialising magic here as you normally would
}
return self;
}
私の推測では
MySingleton *shared = [MySingleton sharedInstance];
shared = nil;
ローカル ポインタshared
を に設定するだけnil
です。結局のところ、shared
として宣言されていstatic
ます。