我曾经像这样使用单例:
///.h
@interface ASMyController:NSViewController
+(id)myViewController;
@end
////.m
static ASMyController* singleton = nil;
@implementation ASMyController
+(id)myViewController
{
if(nil == singleton)
{
singleton = [[[self class] alloc] init];
}
return singleton;
}
-(id)init
{
self = [super initWithNibName:@"test" bundle:xxxx];
if(self)
{
..............................
}
return self;
}
@end
单例在非基于文档的应用程序中运行良好。但是,在基于文档的应用程序中,应用程序的每个实例共享相同的静态变量。在我的第一个设计中,单例并且仅在一个应用程序实例中而不是所有应用程序实例中。
那么这是否意味着我应该重新考虑设计?或者我可以将单例制作成字典。我可以使用 key 来获取当前实例的单例吗?或者对我有什么好主意?
我祈祷我蹩脚的英语不会给你带来麻烦。。