2011-05-03 67 views
0

我的代碼是:如何處理Objective-C中單例模式的內存管理?

static Class1 *onlyInstance; 
+(Class1*) getInstance { 
    @synchronized([Class1 class]) { 
    if(onlyInstance == nil) 
    onlyInstance = [[Class1 alloc]init]; 
return onlyInstance; 
} 
return nil; 
} 

如何使用Objective-C中sington模式管理內存?

+0

你的意思是你應該如何清理singleton類? – 2011-05-03 08:56:00

+0

我的意思是說,什麼時候和哪裏應該釋放對象onlyInstance我分配..如何管理這種類型的靜態變量創建內存。 – Cathy 2011-05-03 09:02:48

回答

1

這是一個單身人士,你並不需要在任何時候發佈它,它應該是在你需要它的時候。

如果你需要釋放它,你可以在課堂上做到這一點。

只需發佈onlyInstance並將其設置爲nil,因此一旦創建它的方法再次被調用,它將重新創建它。

+0

但是因爲我回來onlyInstance,我怎麼能釋放它呢? – Cathy 2011-05-03 10:52:04

+0

autorelease,但你不會需要一個單例,而是一個簡單的方法,如+(MyClass *)myClass {return [[[MyClass alloc] init] autorelease]; } – 2011-05-03 11:52:55