Cocoa释放一个静态变量

时间:2011-09-06 15:29:20

标签: objective-c cocoa

我创建了一个使用静态NSSet的类来定义我的类的每个实例共享的一些元素。

要定义此项,请使用以下代码:

myStaticSet = [[NSSet setWithObjects:
                         @"element one",
                         @"element two",
                         nil
                         ]retain];

你可以看到我保留了这套。

我真的无法理解我可以在哪里发布myStaticVariable我很确定我无法在dealloc中发布它...那么有没有办法释放静态变量?

// EDIT 添加新的类方法来释放静态值可能是一个很好的解决方案吗?

+(void)cleanstatic{
    [mystatic release];
}

当我确定我已经完成了这门课程的时候打电话给它?

2 个答案:

答案 0 :(得分:5)

如果您正在使用静态变量并希望将其释放,那么它毕竟不应该是静态的?它是否在应用程序的整个生命周期中使用?在那种情况下,我会说你不必费心去释放它。

否则,如果您使用此变量对代码有一些共同的“端点”,那么就可以摆脱它。

答案 1 :(得分:3)

你不应该发布它。正如你所说,它是由你的每个类实例共享的,你永远不能确定你不会创建新的实例。因此,只要您的应用程序正在运行,该集就应该存在。