在iOS中,如果我将一些const变量放在头文件中,那么通过包含这个头文件在不同的源文件中使用它们,这些变量的生命周期是什么?这些变量何时分配/释放?这些变量存储在哪里?
答案 0 :(得分:2)
你问:
这些变量的生命周期是什么?
全局变量的生命周期适用于应用程序的生命周期。
这些变量何时被分配/释放?
在应用程序终止之前,它们才会被释放。
这些变量存储在哪里?
如果您正在谈论原始数据类型或字符串文字,它们将存储在专用的__DATA
段中,而不是存储在堆中,而不是堆栈中。
您不应将const
全局变量的实现放在标头中。将它们放在.m
文件中。只在.h
文件中添加外部引用。
因此,例如,将以下内容放在.m
文件中:
NSString * const kNotificationName = @"com.domain.app.notification";
然后,在您的.h
文件中,输入:
extern NSString * const kNotificationName;
这样,您实现了一次,但导入该标头的任何文件都可以看到它。