我追問是靜態對象內存釋放
-(ABC*)createInstance
{
Static ABC *obj = [[alloc ABC] init];
if(obj == nil)
{
obj = [[alloc ABC] init];
}
return obj
}
,才能在客觀C寫的
[[ABC createInstance] release]
我追問是靜態對象內存釋放
-(ABC*)createInstance
{
Static ABC *obj = [[alloc ABC] init];
if(obj == nil)
{
obj = [[alloc ABC] init];
}
return obj
}
,才能在客觀C寫的
[[ABC createInstance] release]
是的,如果你還沒有覆蓋retain
/release
用戶可以發佈您的實例。看看common singleton patterns更好的方法。
注:
[ClassName alloc]
,不[alloc ClassName]
createInstance
類方法使用+ (ABC*)createInstance;
static
,不Static
obj
至nil
self
,而不是ABC
如果子類是一個問題:[self alloc]
sharedInstance
我想補充: 1.你必須**用零來初始化靜態存儲變量(非原語不起作用)。 2.你應該使用'self'而不是'ABC'來分配(用於子類化)。 3.訪問者應該被命名爲'sharedInstance'(公共objc樣式)。 – 2010-07-10 09:32:22
@Nik:很好的補充,但是1.僅適用於文件範圍變量。 – 2010-07-10 09:39:25
1.哦,好,我沒有意識到這種差異。 2.它應該是'[self alloc]',因爲它是一個類方法(當然)。 – 2010-07-10 09:45:55
您的代碼是沒有意義的,並不會編譯。 – 2010-07-10 09:20:07
你試圖用代碼實現什麼? – 2010-07-10 11:58:32