【问题标题】:How much do experienced Cocoa programmers rely on Interface Builder for wiring up their apps?经验丰富的 Cocoa 程序员在多大程度上依赖 Interface Builder 来连接他们的应用程序?
【发布时间】:2010-10-12 19:12:20
【问题描述】:

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

在许多其他环境中,我不会在界面构建器(小写)上打扰太久,但 Apple 工具显然是属于他们自己的一类。仍然,它们是更进一步,还是初学者的工具?为什么?

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

【问题讨论】:

标签: objective-c cocoa macos interface-builder


【解决方案1】:

经验丰富的 Cocoa 开发人员广泛使用 Interface Builder。 没有经验的 人倾向于不信任它,因为其他环境的 UI 构建器通常很糟糕,所以他们认为 Interface Builder 就是这样。它不是。 Cocoa 和 Interface Builder 紧密相连。 使用 Interface Builder 很难开发应用程序 - 如果您查看 Cocoa-Dev 邮件列表档案,您会看到很多沮丧的 Cocoa 新开发人员询问他们如何才能做到避免使用 IB。 Apple 员工和资深 Cocoa 开发人员的回答都是一样的:使用它。

觉得我满脑子都是废话?打开任何专业完成的 Cocoa 应用程序。说真的——任何 Apple 应用程序,任何第三方 Cocoa 应用程序。现在转到资源文件夹。戳一戳,你会看到随处可见的笔尖

至于多少 IB 是太多了——有一点需要通过代码建立连接。通常,连接 UI 元素和控制器通常在 IB 中完成,甚至控制器到控制器的连接通常也是如此,尽管这更不确定。它基本上归结为设置和维护的工作量更少。具有讽刺意味的是,IB 主导地位的最大例外是自定义视图。当您有一个只使用一次的自定义视图时,不值得花时间为它创建 IBPlugin。在这种情况下,通常控制器连接到 IB 中的视图,然后控制器将视图连接到它需要的任何其他东西。

【讨论】:

  • Chuck,感谢您对保证金案例权衡的广泛回答和讨论。我认为现在有一个不错的主意。
【解决方案2】:

这主要取决于他们作为开发人员的背景以及您认为“经验丰富”的情况。

我见过人们甚至拒绝开设 IB。

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

【讨论】:

  • 不同的人对 IB 有着截然不同的看法。有些人喜欢它使一切变得如此“可见”的事实;其他人讨厌它如此“隐藏”的事实。很奇怪。
  • 我不知道它隐藏了什么。至少在 iPhone 领域。任何有纪律地使用 IB 并了解图书馆知识的人都将能够将其作为主要的时间节省者。我认为 IB 的解雇源于服务器端的老家伙,或者可能是早期的 Mac 开发人员,他们认为“过去的美好时光”。我只知道我不想要一个有 800 行 setFrame 的应用程序:
  • 如果他们有其他方面的经验没有 Cocoa,是的,这取决于他们的背景。几乎每个拥有五年或五年以上经验的 Cocoa 开发人员都大量使用 IB。
  • 您看不到连接。话虽如此,我对 IB 使用的指导方针是“尽可能”。
【解决方案3】:

就像苹果的文档说的那样,你写的代码越少,你需要维护的就越少,我认为这是一个很好的观点。

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 2011-01-09
      • 1970-01-01
      • 2011-06-15
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 2019-02-05
      • 2012-09-19
      • 1970-01-01
      相关资源
      最近更新 更多