我在这个页面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类等其他单例具有相同的特征。
答案 0 :(得分:1)
你只需要使用它
[[SingletonClass sharedStore] CYCImageStore];
SingletonClass是您的单例类的名称。
以同样的方式,你可以创建你想要的任何方法并调用它。
答案 1 :(得分:0)
单例类无论多少次都返回相同的实例 应用程序请求它。典型的类允许呼叫者创建 尽可能多的班级实例,而单身人士 class,每个进程只能有一个类的实例。一个 singleton对象提供了对资源的全局访问点 它的班级。单身人士用于这一点 控制是可取的,例如提供一些通用的类 服务或资源。
在您的代码中,
dispatch_once(&imageLocation, ^{sharedImageStore = [[self alloc]initPriv];});
此部分仅执行一次。因此初始化只发生一次。从第二次起它将跳过初始化部分。因此,由于初始化,一旦存储的数据将不会被重置。 你不需要做任何额外的工作或打扰初始化。使用 sharedStore 方法访问这些方法。