目标C - 你在哪里解除全局静态变量?

时间:2009-10-06 23:38:30

标签: objective-c static dealloc

或者,+(void)初始化的反义词是什么?

这是我的情况:

我有一个类Unit,其 - (id)initWithName:函数从全局NSDictionary获取数据,该数据是懒惰创建的,在Unit.m文件中定义为:

static NSMutableDictionary * unitLibrary = nil;

我在哪里打电话给[unitLibrary release]?

2 个答案:

答案 0 :(得分:13)

您可以在您不再需要字典的位置调用它。如果在应用程序的整个生命周期中都需要它,那么您不必执行任何操作,因为当应用程序终止时,操作系统将回收所有内存。

答案 1 :(得分:3)

没有通用的答案。当您确定不会再次使用时,您应该取消分配它。可能的候选人可能在 applicationWillTerminate 委托消息中,或通过 atexit()函数。