私はシングルトンのベスト実装を理解しようとしています これは私が得た最新のものです。Objective-Cシングルトンの実装
これは、.mファイルの実装であることに何か問題:私は行うことができます
#import "Foo.h"
static Foo *object = nil;
@implementation Foo
+ (Foo*)sharedObject {
return [[Foo alloc] init];
}
- (id)init {
static dispatch_once_t once;
dispatch_once(&once, ^{
object = [super init];
});
return object;
}
@end
とそれを使用する:
[Foo sharedObject]
または
[[Foo alloc] init]
、両方の意志同じオブジェクトを返します。
あなたがしていることは悪い習慣であり、シングルトンを行うのは間違った方法です。 'alloc init'は、レイジーに割り当てられたシングルトンではなく、常にインスタンスを返す必要があります。右のコーディングパターンの@isamankumara答えを参照してください。 – Shebuka
なぜそれが必須であると言っているのですか、あなたの(私の)友人は、シングルトンの忠誠ですと思います。これが私がこの質問を書いた正確な理由です。シングルトンはこのクラスの唯一のインスタンスです。そうでなければそれはシングルトンではありません –