在Objective C中声明实现上下文内部和外部的静态变量之间的区别?

blu*_*her 15 iphone static objective-c ios

可能重复:
我在哪里声明静态变量?

我见过像这样的代码

@implementation ClassA

static NSString *str = nil;

.....

@end
Run Code Online (Sandbox Code Playgroud)

以及

static NSString *str = nil;

@implementation ClassA

.....

@end
Run Code Online (Sandbox Code Playgroud)

如果在@implmentation上下文和外部声明静态var,有什么区别

Vik*_*yan 16

两者之间没有区别

@implementation ClassA

static NSString *str = nil;

.....

@end
Run Code Online (Sandbox Code Playgroud)

static NSString *str = nil;

@implementation ClassA

.....

@end
Run Code Online (Sandbox Code Playgroud)

他们以同样的方式工作......

静态变量有助于为类对象提供比生成实例的"工厂"更多的功能; 它本身可以成为一个完整的多功能对象.类对象可用于协调它创建的实例,从已创建的对象列表中分配实例,或管理对应用程序必不可少的其他进程.在只需要特定类的一个对象的情况下,可以将所有对象的状态放入静态变量中,并仅使用类方法.这节省了分配和初始化实例的步骤.