代码设计问题:正在使用[自我视图];或[自我窗口];一个不好的做法?

时间:2011-03-25 23:56:34

标签: objective-c cocoa

我注意到,如果有人打电话给[自我观察];或[自我窗口];分别在NSViewController或NSWindowController的init方法中,然后所有IBOutlet都在init方法中可用。

你认为这样做是不好的编程习惯吗?

对于NSWindowController,我认为最好使用“windowDidLoad”方法来保证插座连接。但是NSViewController呢?

2 个答案:

答案 0 :(得分:2)

是;除非并且直到您绝对需要访问笔尖中的任何对象,否则不要导致加载笔尖。让控制器变得懒惰,因为它被设计为。

  

对于NSWindowController,我认为最好[在我的设置中]使用“windowDidLoad”方法来保证出口连接[当时]。但是NSViewController呢?

覆盖loadView。发送[super loadView],然后执行您需要执行的任何操作,这需要加载视图。

编辑:正如ughoavgfhw所说,awakeFromNib也是一个不错的选择,甚至可能是更好的选择。

答案 1 :(得分:2)

IBOutlet永远不会在初始化方法中连接。如果要对nib中的对象执行某些操作,则需要使用awakeFromNib,或者在NSWindowController的特定情况下使用windowDidLoad