假設我有一個視圖控制器或窗口控制器,它是(像往常一樣)對應XIB文件中的「文件所有者」。實現中的IBOutlet實例變量(.m)文件
它是(衆所周知)在控制器類中有IBOutlet
s很常見,然後可以使用Interface Builder在XIB中進行連接。
到現在爲止,我一直在我的界面(.h)文件中創建IBOutlet
實例變量。但是(衆所周知)IBOutlet
通常是控制器類的私有機制;外人甚至不應該知道他們。
這就是爲什麼我現在自Objective-C最近開始提供這樣做的能力 - 希望將我所有的IBOutlet
都放到我的實現(.m)文件中。
我試過這樣做,這似乎工作正常。 我的問題是這些:爲什麼這個有效?我的印象是Interface Builder只能查看類的頭文件 - 而不是窺探他們的實現文件。我錯了嗎? Interface Builder如何「看到」實現文件?將IBOutlet
實例變量放入實現文件可能會帶來潛在危險嗎?
請注意,只有在Mac上使用現代運行時纔可能,這意味着只有64位。傳統的運行時需要在頭文件中聲明所有的ivars。 – 2012-01-03 22:31:44