目标C - 分配良好实践的对象

时间:2015-02-02 11:57:09

标签: ios objective-c model-view-controller superclass

我正在尝试使用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 但是,如果没有单音设计模式,我有什么办法可以做到这一点吗?

感谢您的关注。

1 个答案:

答案 0 :(得分:3)

如何使用static变量?

- (Lecturer *)lecturer {
    static dispatch_once_t onceToken;
    static Lecturer *o;
    dispatch_once(&onceToken, ^{
        o = [[Lecturer alloc] init];
    });
    return o;
}

此外,dispatch_once有助于线程安全地进行。