J'essaie de comprendre la meilleure mise en œuvre d'un singleton c'est la dernière fois que j'ai obtenu.Implémentation singleton Objective-C
C'est la mise en œuvre fichier .m, quelque chose de mal avec elle:
#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
et de l'utiliser, je peux faire:
[Foo sharedObject]
ou
[[Foo alloc] init]
Et les deux seront retourne le même objet.
Ce que vous faites est une mauvaise pratique et c'est une mauvaise façon de faire des singletons. 'alloc init' doit toujours renvoyer une instance, pas un singleton alloué paresseux. Voir @isamankumara réponse pour le modèle de codage droit. – Shebuka
Pourquoi dites-vous que c'est un must, je pense que votre (doit) mon ami est l'exact la déférence d'un singleton. et c'est la raison exacte pour laquelle j'ai écrit cette question. singleton est une et une seule instance de cette classe, sinon ce n'est pas un singleton –