在superClass中,我定义了一个名为“sharedClient”的方法
+ (id)sharedClient
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[self alloc]init];
});
return instance;
}
在这个方法中我想调度一次对象。然后我定义了superClass.class A和B类的两个子类。
我希望在我调用A的方法sharedClient之后,有一个A的sharedClient,我已经调用了B的sharedClient,有一个B的对象。但是看来如果A和B调用了方法两者,总是有一个先前被称为类的对象。
答案 0 :(得分:1)
dispatch_once
执行它的名字所暗示的内容,因此只有一个alloc,并且只有一个赋值给实例。这将是第一个被调用的类的实例。
如果你真的想要一个单身人士,那么你可能不想要三个班级。也许你想要一个单独的实例?然后每个文件都有一个静态实例变量,每个类都有自己的sharedClient实现。