gpt4 book ai didi

objective-c - Objective-C 中的 const 与静态 NSStrings

转载 作者:搜寻专家 更新时间:2023-10-30 20:27:46 24 4
gpt4 key购买 nike

这些行都在 @implementation 声明之上的实现文件中。

NSString * const aVar = @"aVarStringValue";

static NSString *aVar = @"aVarStringValue";

据我所知,第二个 static 仅在应用程序的生命周期内分配一次,这一事实有助于提高性能。

但这是否意味着它本质上是内存泄漏,因为那 block 内存永远不会被释放?

相比之下,第一个 const 声明是否在每次访问时都被分配?

最佳答案

Objective-C(和 C/C++)中的

static 关键字表示变量的可见性。静态变量(不在方法中)只能在特定的 .m 文件中访问。另一方面,静态局部变量只分配一次。

const 另一方面,表示引用不能被修改和/或重新分配;并且在如何创建它方面是正交的(尽管编译器可能会优化常量)。

值得一提的是,NSString 文字会被初始化,并且在应用程序的生命周期中永远不会被销毁。它们被分配在内存的只读部分。

关于objective-c - Objective-C 中的 const 与静态 NSStrings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42448875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com