我正在尝试使用Objective-C构建MVC应用程序,我试图在我的超类中分配和初始化我的模型一次是UIViewController,我的想法是在超类中执行一次并从每个子类访问我的超类。
superclass.h
@property (nonatomic, strong) Lecturer *lecturer;
superclass.m
- (void) viewDidLoad {
[super viewDidLoad];
}
#pragma mark - GET
- (Lecturer *)lecturer {
if (!_lecturer) {
_lecturer = [Lecturer alloc]init];
}
return _lecturer;
}
我的想法是从所有子类调用self.lecturer并设置/获取讲师类属性但每次当我调用self.lecturer创建一个新实例时,我知道我可以使用 SINGLETONE 但是,如果没有单音设计模式,我有什么办法可以做到这一点吗?
感谢您的关注。
答案 0 :(得分:3)
如何使用static
变量?
- (Lecturer *)lecturer {
static dispatch_once_t onceToken;
static Lecturer *o;
dispatch_once(&onceToken, ^{
o = [[Lecturer alloc] init];
});
return o;
}
此外,dispatch_once
有助于线程安全地进行。