我注意到,如果有人打电话给[自我观察];或[自我窗口];分别在NSViewController或NSWindowController的init方法中,然后所有IBOutlet都在init方法中可用。
你认为这样做是不好的编程习惯吗?
对于NSWindowController,我认为最好使用“windowDidLoad”方法来保证插座连接。但是NSViewController呢?
答案 0 :(得分:2)
是;除非并且直到您绝对需要访问笔尖中的任何对象,否则不要导致加载笔尖。让控制器变得懒惰,因为它被设计为。
对于NSWindowController,我认为最好[在我的设置中]使用“windowDidLoad”方法来保证出口连接[当时]。但是NSViewController呢?
覆盖loadView
。发送[super loadView]
,然后执行您需要执行的任何操作,这需要加载视图。
编辑:正如ughoavgfhw所说,awakeFromNib
也是一个不错的选择,甚至可能是更好的选择。
答案 1 :(得分:2)
IBOutlet永远不会在初始化方法中连接。如果要对nib中的对象执行某些操作,则需要使用awakeFromNib
,或者在NSWindowController的特定情况下使用windowDidLoad
。