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

Ket*_*ets 0 objective-c ios

我有一个自定义NSObject类,我在为我的数据,我想用等等,但我怎么能alloc和初始化这个类对象数组,到处都使用它,而总是使用:CustomClass class = [[CustomClass alloc] init];因为这使得每一次的对象从我的课,所以数据完全没了.

我总是得到关于如何处理alloc/init事情的事情,但没有关于如何处理在内存中说出的类的事情,你可以每次都使用而不用通过所有其他类创建一个新类.

Ger*_*d K 6

阅读有关单身人士共享实例的信息.这是目前最常见的版本:

+ (MyClass *)sharedInstance {

    static MyClass *sharedInstance;
    static dispatch_once_t onceToken;

    dispatch_once(&onceToken,^{

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

    return sharedInstance;
}
Run Code Online (Sandbox Code Playgroud)

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

  • 许多人更喜欢仅为*属性*使用"点语法"(但有不同的意见),但我不会将`[MyClass sharedInstance]`称为"旧语法". (2认同)