Iphone 在团队环境中合并时的界面生成器(XIB)或代码?

Iphone 在团队环境中合并时的界面生成器(XIB)或代码?,iphone,objective-c,ios,ipad,interface-builder,Iphone,Objective C,Ios,Ipad,Interface Builder,将interface builder文件与其他人(甚至是来自不同计算机的我)合并可能是一个真正的挑战。XIB xml肯定比NIB好,但即使是xml,我也发现合并并获得一致有效的XIB比只使用另一个并手动重做所做的更改更困难 我想知道其他人在做什么,他们有多个可能在XIB上发生冲突的人 合并是否是所有代码的考虑因素?您是否仅将XIB用于布局并对其余部分进行编码?或者,您是否有幸合并了XIB,并且随着时间的推移,您的手动阅读能力有所提高? 编辑:我目前的方法是使用它进行严格的布局(它真正擅长的是什么

将interface builder文件与其他人(甚至是来自不同计算机的我)合并可能是一个真正的挑战。XIB xml肯定比NIB好,但即使是xml,我也发现合并并获得一致有效的XIB比只使用另一个并手动重做所做的更改更困难

我想知道其他人在做什么,他们有多个可能在XIB上发生冲突的人

合并是否是所有代码的考虑因素?您是否仅将XIB用于布局并对其余部分进行编码?或者,您是否有幸合并了XIB,并且随着时间的推移,您的手动阅读能力有所提高?


编辑:我目前的方法是使用它进行严格的布局(它真正擅长的是什么,编写代码很痛苦),并通过代码设置所有选项和数据。我发现代码更容易合并,但在代码中布局控件是乏味的。想法?

正如您所说,我发现IB更适合布局,但这可能正是我的原因,因为我是以这种方式长大的。另外,代码比布局更易于重用


就我而言,在运行时两者的行为都是一样的,尽管我不是100%确定。IB中的原型没有代码中的原型那么痛苦,我知道客户肯定不会对您的代码原型产生任何价值。

我所做的就是不费事尝试合并,只接受分支版本或您的版本。这意味着您必须对更改接口代码的人员以及提交和更新有一定的约束,实际上我们没有发现这是一个问题,但我想这取决于您的环境。 不要以此作为停止使用interface builder的借口,没有什么比试图挖掘其他人的代码来找到按钮更糟糕的了,这样你就可以知道当用户点击按钮时会发生什么。 没有Interface Builder,您就不尊重MVC分离。

合并是否是所有代码的考虑因素

是、否和“部分”。这取决于以下情况:

  • 当事人
  • 用户界面的复杂性
  • 您需要的实现质量
  • 实现的预期生存期
但确实是这样,而且通常情况下,情况并非微不足道——否则,您只需通过将XIB分解成更小的片段来解决问题。这可以很好地工作(或不工作),这取决于你所面临的情况

您是否仅将XIB用于布局并对其余部分进行编码

这取决于很多事情

  • XIB只有它的限制,很像代码复制。我有时用它来做原型,其他时候因为那是别人喜欢的
  • “两者兼而有之”可能需要大量胶水。有时,它可能非常混乱——例如,“那个动作真的在哪里?”。当然,这也可以用来实现一些人认为XIB和编程分离的良好平衡。XIB越简单,需要调整的频率就越低,导致合并冲突的可能性也就越小
  • 代码只是我的首选,但有些人更喜欢WYSIWYG,而且他们不太熟悉以编程方式编写UI。同样,如果质量、可重用性和可维护性不是需求(例如,敲出一个原型),那么代码只能是多余的
或者,您是否有幸合并了XIB,并且随着时间的推移,您的手动阅读能力有所提高


没有真正的运气——只是把它们分解成更小的组件。不幸的是,“分解接口”选项(来自IB3)在Xc4的编辑器中不可用。

同意代码更可重用,也同意IB中的布局更好。这是我目前的方法(IB中的严格布局和配置代码中的控件,我可以轻松保存、复制粘贴和区分)。如果我必须在一个糟糕的合并情况下重做布局,它会很快,因为它是严格的布局和重新绑定。等待其他人的意见…以此作为答案,因为这基本上是我得出的结论,我还没有听到其他简单合并的建议。在interface builder中,代码更易于重用(剪切和粘贴),严格的布局也更容易实现。MVC不指定interface builder。我已经在多个平台上用多种语言编写了MVC模式代码。有些有设计师,有些没有。MVC指示视图与控制器分开。在没有xib和MVC的情况下,可以有一个视图类、一个控制器类和一个模型类。MVC可以追溯到施乐Parc在1978/1979年,我非常确定界面生成器并不存在:)你说得对,我只是从没有使用界面生成器的iOS应用程序的经验中说了更多。它们倾向于将所有视图构建代码都固定在视图控制器中。