我们需要释放常量吗?

时间:2011-09-15 19:01:19

标签: iphone objective-c ios cocoa-touch nsstring

如何在类的实现部分中声明如下的常量:

static NSString *myconst = @"some data...";

求助,

的Stephane

3 个答案:

答案 0 :(得分:2)

不,您不需要释放使用@""创建的字符串。您只需要发布使用allocretaincopynew创建的对象。

答案 1 :(得分:1)

您不必释放它。字符串文字驻留在可执行文件的数据部分中,而不是在动态分配的内存(AKA堆)中。

尽管不小心打电话给release也没什么坏处。我很确定这些文字是安静地忽略那个电话。

答案 2 :(得分:1)

保留,释放和自动释放上述类型的字符串将被忽略。

阅读Apple的内存管理文档here

但是有一点需要注意的是,通过发布会使应用程序崩溃。因此,通常的想法是,如果您没有在字符串上使用alloc或retain,请不要尝试释放它。

另请阅读此有用链接here,它解释了同样的事情。