在Objective-C 的语法中声明后的static静态变量在其他类中是不能通过类名直接访问的,它的作用域只能是在声明的这个.m文件中 。不过可以调用这个类的方法间接的修改这个静态变量的值。
应用1:
static int m = 10;
在.m文件上面编写
方法体内
m++;
NSLog(@"m == %d",m);
// 第一次执行 2014-02-24 17:10:43.117 ARCTest[1726:a0b] m == 11
//第二次执行 2014-02-24 17:10:49.238 ARCTest[1726:a0b] m == 12
应用二:
由于在程序中初始化一次,永不释放,创建单例对象的指针;
static NDDatabase *_s;
@implementation NDDatabase
+ (NDDatabase *)sharedDatabase
{
@synchronized(self)
{
if (_s == nil)
_s = [[NDDatabase alloc] init];
}
return _s;
}