mel*_*nye 5 null singleton static objective-c
使用它有什么好处:
+ (CardPainter*) sharedPainter {
static CardPainter* sp = nil;
if (nil == sp) {
sp = [[CardPainter alloc] init];
}
return sp;
}
Run Code Online (Sandbox Code Playgroud)
而不是这个:
+ (CardPainter*) sharedPainter {
static CardPainter* sp = [[CardPainter alloc] init];
return sp;
}
Run Code Online (Sandbox Code Playgroud)
静态变量初始化只执行一次,所以我看不到前者的优点.
Ver*_*ig0 -2
因为如果你不问,你就会在任何时候调用“sharedPainter”时启动“*sp”,从而丢失任何数据。
因此,如果您询问 sp 是否为 nil 并且答案为 FALSE,则表示“sp”已经初始化并且它返回实例。如果答案为真,则意味着 sp 未初始化,在这种情况下您将调用 init 函数。
归档时间: |
|
查看次数: |
452 次 |
最近记录: |