iOS单例类

时间:2015-04-22 11:55:46

标签: ios objective-c iphone ios8 singleton

我正在使用类型为MyController的单件类UIViewController。我可以访问[MyController sharedInstance].view之类的视图属性,并且可以将其设置为nil,例如

[MyController sharedInstance].view = nil;

我想限制某人访问view属性。我怎么能停止/限制呢?

2 个答案:

答案 0 :(得分:0)

我自己找到了解决方案。我将方法重写为

-(void)setView:(UIView*)view {
    if (view == nil) {
        //ignore - make no change
    }
    else {
        //default performance
        [super setView:view];
    }
}

答案 1 :(得分:-2)

  

我在多个屏幕中使用控制器。如果控制器被多次创建,它会增加应用程序的权重。所以,为了克服这个问题,我创造了一次并在每个地方重复使用它。

您可以为UIViewController创建一个可以在多个视图中使用的基类。如果加载新视图,iOS将正确处理内存管理。旧视图将被卸载

- (void)viewDidDisappear:(BOOL)animated
- (void)viewWillDisappear:(BOOL)animated

将被调用。在那里你可以处理任何多余的数据。