IB沒什麼神奇的。除了以所見即所得的方式查看和編輯動態類型之外,它不會添加任何功能。它使用類接口的所有功能,以及一些可可內部(對於你來說足夠可見 - 綁定和歸檔等)。
最大的運行時差異在於如何創建對象(例如NSViews)。與筆尖,你得到筆尖unarchiving,而不是[[MONView alloc] initWithFrame:r]
。
如果你已經習慣了語言/模式,你真的不需要太多的Wrt教程。通常,您只需查找具有相同名稱的屬性並在此處定義它。此外,您將實現自己的initWith方法,而不是NSCoder + awakeFromNib方法。一旦你瞭解IB如何將筆尖歸檔,這真的很簡單。
所以...作爲一個起點,我建議將功能性筆尖轉換爲功能性程序化實現。一路上,您必須查找一些方法來了解如何操作和構建NSView圖表 - 如何將您在IB中知道的信息轉換爲源表示形式。
我真的不知道具體的資源,我的觀點是它比你想象的要容易。當然,還有一些酒吧可以簡短地演示這些 - 但我知道的酒吧很快就會在少數情況下演示它作爲概念驗證,然後使用IB繼續教程。
我知道的最好的奇異資源是可可編程(痛苦/巴克/ Yacktman) - 也許這是過時或已被修改。我知道的最後一個rev是從2002年開始的。
最後,你可能會得到很多人告訴你它是多麼可怕的想法是而不是使用IB。如果你想進行認真的開發,並且你已經理解IB,我認爲這是一項很棒的技能,對我來說非常有用 - 特別是對於複雜的應用程序和大型代碼庫。對於簡單的應用程序,它並不重要。我很少創建/使用筆尖 - 我只是在大多數情況下以編程方式實現它。我發現它更乾淨,更快,而且不那麼多餘。另外,我有大量的自定義實現並使用objC++,所以當你離主線很遠時,IB並不是那麼有用。
祝你好運!
感謝您的建議。我知道使用IB。但是,作爲一名學習者,我總是喜歡編碼自己,以便更好地學習。 – EmptyStack 2011-01-31 06:02:34