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