我们需要释放常量吗?

发布于 2024-12-05 08:18:01 字数 131 浏览 1 评论 0原文

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

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

谢谢您的帮助,

Stephane

How does a constant declared as below in the implementation part of a class is released:

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

Thx for helping,

Stephane

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

微凉徒眸意 2024-12-12 08:18:01

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

No, you don't need to release strings created with @"". You only need to release objects created with alloc, retain, copy or new.

囍笑 2024-12-12 08:18:01

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

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

You don't have to release it. The string literals reside in the executable's data section, not in the dynamically allocated memory (AKA heap).

There's no harm in accidentally calling release though. I'm pretty sure the literals are wired to quietly ignore that call.

辞取 2024-12-12 08:18:01

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

此处阅读 Apple 的内存管理文档

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

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

retain, release and autorelease messages to strings of the above kind are ignored.

Read Apple's memory management docs here

However one thing to note here is passing release crashes the app. Hence the usual idea being, if you haven't used alloc or retain on the string, don't attempt to release it.

Also read this useful link here which explains the same thing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文