我有很多的方法是这样的:我真的需要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调用?