我有很多的方法是這樣的:我真的需要atexit_b嗎?
-(NSObject *)theObject
{
static NSObject *obj = nil;
static dispatch_once_t onceToken = 0;
dispatch_once(&onceToken, ^{
obj = [[NSObject alloc] init];
atexit_b (^{
[obj release], obj = nil;
});
});
return obj;
}
我想用atexit_b
的初衷是做一個好公民,在申請結束:)之前釋放剛剛使用的內存。然而,據我所知,在運行時將重新收集所有的記憶,當我的應用程序退出(或終止等)反正。
可我總以爲這?或者也許它取決於OS /運行時/一些實現?
在我的特殊情況下,我有幾個(可以說幾十個)atexit_b
調用所有應用程序,所以它意味着一些內存被用來做不必要的事情。
這是真的嗎?如果是這樣,那麼這是否意味着我不需要atexit_b調用?