整个应用程序中是否有自定义类单例?

时间:2014-05-06 05:50:29

标签: ios singleton

我在这个页面does something need to hold a reference to a singleton objective-c object in order to preserve it through the life of an IOS app?上读到了关于单身人士的信息,并发现单身人士保留了一个指向自身的指针,因此不需要引用它来保持它并保持活着。

但是,如果我有一个自定义类,它是NSObject的子类,我编写了一个代码来实例化像这样的单例对象

+ (instancetype)sharedStore{

static CYCImageStore *sharedImageStore = nil;

static dispatch_once_t imageLocation;

dispatch_once(&imageLocation, ^{sharedImageStore = [[self alloc]initPriv];});

return sharedImageStore;
}

我是否需要一个指向它的指针才能保持活着状态?或者它是否与UIApplication类等其他单例具有相同的特征。

2 个答案:

答案 0 :(得分:1)

你只需要使用它

[[SingletonClass sharedStore] CYCImageStore];

SingletonClass是您的单例类的名称。

以同样的方式,你可以创建你想要的任何方法并调用它。

答案 1 :(得分:0)

  

单例类无论多少次都返回相同的实例   应用程序请求它。典型的类允许呼叫者创建   尽可能多的班级实例,而单身人士   class,每个进程只能有一个类的实例。一个   singleton对象提供了对资源的全局访问点   它的班级。单身人士用于这一点   控制是可取的,例如提供一些通用的类   服务或资源。

在您的代码中,

dispatch_once(&imageLocation, ^{sharedImageStore = [[self alloc]initPriv];});

此部分仅执行一次。因此初始化只发生一次。从第二次起它将跳过初始化部分。因此,由于初始化,一旦存储的数据将不会被重置。 你不需要做任何额外的工作或打扰初始化。使用 sharedStore 方法访问这些方法。