如何实现全局静态类
这是objective-c上的一个新手问题:我想在整个代码中创建一个静态类,供任何对象访问。 该类将充当多个对象的容器。 任何人都可以提供一个简短的代码示例来说明如何声明静态全局变量和方法吗?
对于我的Globals课程,我有类似的东西
.h文件看起来像这样
@interface Globals : NSObject { } + (Globals *)instance; @end
和.m文件是这样的
导入“Globals.h”
@implementation Globals - (id)init { self = [super init]; if (self) { } return self; } + (Globals *)instance { static Globals *instance = nil; @synchronized(self) { if (instance == nil) { instance = [[Globals alloc] init]; } } return instance; } - (void)dealloc { [super dealloc]; } @end
当然这是Globals课程的一个非常基本的例子
你应该把它想象成Singleton类,在下面找到一些链接,它将帮助你理解Objective-C中的Singleton模式。
关于Objective-C单身人士 , 单身 人士 课程的说明。 , 在Objective-C中使用Singleton模式 ,
您还可以使用Factory模式创建对象。
创建一个类并让您的app delegate持有该类的实例 – 如果您确实需要全局可见性。 诸如全局变量和单例之类的全局可变状态是难闻的气味。 可以想到一个优秀的解决方案。