Objective-C でシングルトンを実装する方法に関する多くのスレッドやブログ記事を読んできましたが、そのうちのいくつかは少し非推奨 (2010 年以前) である可能性があり、この問題に関してはさまざまな意見があるようです。 .. Apple には、シングルトンの実装に関するドキュメントがありますか? 私はそれを見つけることができませんでした。もしそうなら、誰かが私にどこを教えてもらえますか?
パブリック変数とプライベート変数の両方を持つクラスにシングルトンが必要です。現在、これは私がそのようなクラスのために持っている実装です:
@interface MySingleton ()
@property (strong, nonatomic) NSString *state;
@end
@implementation MySingleton
@synthesize state = _state;
@synthesize count = _count;
static MySingleton *sharedObject = nil;
+ (MySingleton *)sharedInstance
{
static dispatch_once_t _singletonPredicate;
dispatch_once(&_singletonPredicate, ^{
sharedObject = [[super allocWithZone:nil] init];
});
return sharedObject;
}
+ (id)allocWithZone:(NSZone *)zone
{
return [self sharedInstance];
}
これは推奨される方法でしょうか?また、パブリックとプライベートのインスタンス変数をどのように初期化すればよいですか?
シングルトンについて明確にしたいもう 1 つの問題は、これによりメモリ リークが発生するかどうかです。シングルトンの使用は実際にiOSで推奨されていますか?
ありがとう