gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 11:38:59 24 4
gpt4 key购买 nike

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

NSString * const aVar = @"aVarStringValue";

static NSString *aVar = @"aVarStringValue";

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

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

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

最佳答案

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

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

const 另一方面,表示不能修改和/或重新分配引用;并且在创建方式上是正交的(编译器可能会优化 consts)。

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

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

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