在 iOS 中,如果我将一些 const 变量放入头文件中,然后通过包含此头文件在不同的源文件中使用它们,这些变量的生命周期是多少?这些变量什么时候分配/释放?这些变量存储在哪里?
最佳答案
你问:
What's the lifecycle of these variables?
全局变量的生命周期是针对应用程序的生命周期的。
When are these variables allocated/released?
在应用终止之前它们不会被释放。
Where are these variables stored?
如果您谈论的是原始数据类型或字符串文字,它们存储在专用的 __DATA
段中,而不是在堆中,也不是在堆栈中。
您不应该将 const
全局变量的实现放在 header 中。将它们放入 .m
文件中。仅将对它们的外部引用放入 .h
文件中。
例如,将以下内容放入您的 .m
文件中:
NSString * const kNotificationName = @"com.domain.app.notification";
然后,在您的 .h
文件中,输入:
extern NSString * const kNotificationName;
这样,您只需实现一次,但导入该 header 的任何文件都可以看到它。
关于ios - 头文件中的变量、内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46166206/