经验丰富的Cocoa程序员多少依赖Interface Builder来连接他们的应用程序?

时间:2010-10-12 19:12:21

标签: objective-c cocoa macos interface-builder

在IB中,可以实例化控制器,构建对UI元素的引用,并定义操作目标。也可以以编程方式执行此操作。我想知道(大多数)经验丰富的Cocoa开发人员更喜欢什么?

在许多其他环境中,我不会花太多时间使用界面构建器(小写),但Apple工具显然是他们自己的一类。他们还有更进一步,还是初学者的工具呢?为什么?

我认为很明显,它们是组装和布局UI的正确选择。但是如何关联UI元素和控制器对象呢?

4 个答案:

答案 0 :(得分:14)

经验丰富的Cocoa开发人员广泛使用Interface Builder。这是没有经验的那些倾向于不信任它的人,因为其他环境的UI构建者通常很糟糕,所以他们假设Interface Builder就是这样。不是。 Cocoa和Interface Builder紧密相连。使用Interface Builder开发一个没有的应用很难 - 如果你仔细查看Cocoa-Dev邮件列表档案,你会看到很多对Cocoa感到沮丧的开发人员问他们怎么样避免使用IB。 Apple员工和经验丰富的Cocoa开发人员的答案都是一样的:只需使用它即可。

认为我充满了废话?打开任何专业完成的Cocoa应用程序。说真的 - 任何Apple应用程序,任何第三方Cocoa应用程序。现在转到Resources文件夹。捅了一下,你会看到nibs 无处不在

至于IB有多少 - 有一点可以通过代码建立连接。一般来说,连接UI元素和控制器通常在IB中完成,甚至控制器到控制器的连接通常也是如此,尽管这种情况更为明显。它基本上归结为设置和维护的工作量较少。具有讽刺意味的是,IB的主导地位是一个很大的例外。如果您拥有仅使用过一次的自定义视图,则不值得为其创建IBPlugin。在这种情况下,通常控制器连接到IB中的视图,然后控制器将视图连接到它需要的任何其他内容。

答案 1 :(得分:4)

这主要取决于他们作为开发人员的背景以及您可以考虑“经验丰富”的内容。

我看到人们甚至拒绝开IB。

我的观点是,制作一个看起来不像iPhone 3G时代的每个教程应用程序的应用程序,你必须使用IB,并避开它并尝试在代码中完全构建一个好看的复杂应用程序是浪费时间,可以使你的代码难以阅读,除非它完美地完成。

答案 2 :(得分:2)

就像苹果公司的文档所说,你编写的代码越少,你必须维护的越少,我认为这是一个非常好的观点。

您始终将控制器与UI元素相关联,这就是所谓的MVC架构。

答案 3 :(得分:2)

任何有经验的Mac或iPhone开发人员都会使用IB进行几乎所有的接口连接,并将其作为“控制反转”对象创建管理器。通过将您的接线放在NIB而不是代码中,它在被请求之前不会被加载,并且更容易管理。