【问题标题】:Do we need to release constants?我们需要释放常量吗?
【发布时间】:2011-09-15 19:01:19
【问题描述】:

类的实现部分声明如下的常量如何释放:

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

感谢您的帮助,

斯蒂芬

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    不过,不小心调用release 并没有什么坏处。我很确定文字会悄悄地忽略该调用。

    【讨论】:

      【解决方案3】:

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

      阅读 Apple 的内存管理文档here

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

      还可以阅读这个有用的链接here,它解释了同样的事情。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-08
        • 2012-01-22
        • 2013-07-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多