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是這個類的唯一一個實例,否則它不是單例 –