0
我想弄清楚单身人士的最佳实施方案 这是我得到的最新版本。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
为什么你说这是必须的,我认为你的(必须)我的朋友是一个单身人士的敬意。这就是我写这个问题的确切原因。 singleton是这个类的唯一一个实例,否则它不是单例 –