我不明白为什么变量在Objective-c类方法中声明为static
?
static
变量的范围是什么?
答案 0 :(得分:3)
static
变量不会被破坏(正常变量会这样做,否则你会得到史诗般的内存泄漏)。将它们视为您只能在本地访问的全局变量。他们将保持活着,直到整个程序终止。
示例:
+ (id)sharedInstance {
static singletonInstance = nil; // for example
if (singletonInstance == nil) {
singletonInstance = [[self alloc] init];
}
return singletonInstance;
}
答案 1 :(得分:1)
范围在文件级别,就像在C中一样。由于它是静态的,变量将在应用程序的生命周期内保留,并且该类的所有实例都可以访问它。好的例子是引用单例实例,实现全局计数器或某种资源锁定。