分配和初始化类一次并使用它

时间:2014-05-09 13:49:32

标签: ios objective-c

我有一个自定义NSObject类,我的数组用于我想要使用的数据等。但是我如何分配和初始化这个类对象,并在任何地方使用它而不总是使用:{{1因为这每次都会从我的类中创建一个对象,所以数据完全关闭。

我总是得到关于如何处理CustomClass class = [[CustomClass alloc] init];内容的事情,但没有关于如何处理在内存中说出的类的事情,并且每次都可以使用而不用通过所有其他类创建新类。

2 个答案:

答案 0 :(得分:6)

了解单身共享实例。这是目前最商定的版本:

+ (MyClass *)sharedInstance {

    static MyClass *sharedInstance;
    static dispatch_once_t onceToken;

    dispatch_once(&onceToken,^{

        sharedInstance=[[MyClass alloc]init];
    });

    return sharedInstance;
}

现在MyClass.sharedInstance(或[MyClass sharedInstance]旧语法)将为您提供一个类的共享实例。 dispatch_once的东西是使它线程安全。显然,您需要将MyClass替换为您的班级名称。

答案 1 :(得分:0)

您需要使用单一模式,如本回答Correct Singleton Pattern Objective C (iOS)?中所述 只运行该类的一个实例,并且可以在整个代码中使用。