【问题标题】:Override UIViewController's view property覆盖 UIViewController 的 view 属性
【发布时间】:2015-04-23 05:31:43
【问题描述】:

我想重写我的MYViewController : UIViewControllersetView: 方法,这样,我不允许有人将view 的属性设置为nil

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

我该怎么做?

【问题讨论】:

  • 你真正想要什么?实现设置器?
  • 是的。这样,如果通过了nil,我应该忽略它。

标签: ios objective-c iphone uiviewcontroller


【解决方案1】:

只有当你想要默认行为时才调用超类应该做的工作:

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

【讨论】:

    【解决方案2】:
    @synthesize view = _view;
    
    -(void)setView:(UIView*)view {
            if (view)
               _view = view;
        }
    

    就这么简单。如果view 不为零,则设置变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-19
      • 1970-01-01
      • 2014-01-17
      相关资源
      最近更新 更多