我刚刚开始使用 Objective-C,并且在创建单例时遇到了这个示例:
+ (BNRItemStore *) sharedStore
{
static BNRItemStore *sharedStore = nil;
if (!sharedStore)
sharedStore = [[super allocWithZone:nil] init];
return sharedStore;
}
我理解他想要做什么——如果它存在则返回相同的实例,如果不存在则创建一个新实例。令我困扰的是这一行:
static BNRItemStore *sharedStore = nil;
每次调用该方法时,此行不会将 sharedStore 重置为 nil 值吗?如果此行始终将其设置为 nil,我看不到该方法将如何返回先前存在的实例。
提前致谢。