2

我是 Objective-C、Cocoa、Xcode 和 Interface Builder 的新手。我过去有一些 C 背景,以及相当多的 RealBASIC 经验。

我正在阅读 Mark 和 LaMarche 的 iPhone 3 Dev 书籍,我真的有点惊讶于有些事情是多么乏味。也许有人可以为我阐明这一点。我的问题真的是,为什么看似简单的动作的过程会涉及如此复杂的步骤?我以后会爱上的复杂性有什么好处吗?或者这只是一个无法避免的残酷事实?

例如,在 RealBASIC 中,如果我想在文本框中显示滑块的值,我只需添加:

myTextBox.text = mySlider.value

到滑块的 Changed 事件。我可以在不到 1 分钟的时间内完成编程。

在 Xcode/Interface Builder 中,我必须为文本框和滑块键入一个声明,然后为每个都键入一个属性/出口声明,然后为 ValueChanged 创建一个方法声明和实现,然后设置一个(相对)使用 initWithFormat 将滑块的整数值复杂类型转换为 NSString。然后我必须返回到 Interface Builder 以将控件与我输入的控件和方法出口链接起来。我看不出这如何在不到 10 分钟的时间内完成。也许5。

那么,这样做有什么好处呢?为什么 Interface Builder 不自动创建或至少建议控件声明和@property 语句,以及方法声明和实现?为什么不能在 IB 中双击滑块为您提供事件列表并自动将框架方法插入到您的 .h 和 .m 文件中?为什么 IB 甚至必须是一个单独的应用程序?

我愿意接受其中一些是我对所有 Xcode 的不熟悉,但这真的和开发环境一样高效吗?

如果这是一个死马,火焰诱饵的话题,对立的双方都处于完全的仇恨状态,我深表歉意。如果是这样,请说“是的,就是这样”并继续前进。

谢谢,-罗伯

4

2 回答 2

3

当您习惯了 MVC 范式时,IB 工作方式背后的许多原因将变得更加清晰。

一旦您开始使用 Cocoa Bindings,它会在 UI 更改时更新您的模型,反之亦然,您应该会看到生产力的巨大提升。

于 2009-08-29T07:20:47.090 回答
1

我也曾经认为 Xcode 和 Interface Builder 是不必要的复杂,直到我完成了一本关于两者的书(特别是,开始 iPhone 开发:探索 iPhone SDK)。

如果你对使用 Xcode 和 Interface Builder 很认真,并且和我刚开始时一样困惑,我强烈建议你拿起一本像我用过的书。当然,那是针对 iPhone 开发的,但我认为同一出版商(或作者)的另一本书是直接的 Mac 编程。

一旦你完成它并了解幕后发生的事情,它就会开始变得更有意义。在某些方面,我更喜欢 IB,而不是 Expression Blend 或 XAML 等用于 .NET 中 WPF 编程的东西。

尝试一本书,看看它是否有帮助:-) 祝你好运!

于 2009-08-28T20:56:56.140 回答