如何实现全局静态类

时间:2012-02-07 07:02:39

标签: iphone objective-c ios class object

这是关于objective-c的一些新手问题: 我想在整个代码中创建一个可供任何对象访问的静态类。该类将充当多个对象的容器。 任何人都可以提供一个简短的代码示例来说明如何声明静态全局变量和方法吗?

3 个答案:

答案 0 :(得分:3)

对于我的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类的一个非常基本的例子

答案 1 :(得分:2)

你应该把它想象成Singleton类, 在下面找到一些链接,它将帮助您理解Objective-C中的Singleton模式。

A note on Objective-C singletonsSingleton Classes.Using the Singleton Pattern in Objective-C

您还可以使用Factory模式创建对象..

答案 2 :(得分:0)

创建一个类并让你的app delegate持有该类的实例 - 如果你真的需要全局可见性。诸如全局变量和单例之类的全局可变状态是难闻的气味。可以考虑一个优秀的解决方案。