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

将界面构build器文件与其他人(甚至是来自不同计算机的我自己)合并可能是一个真正的挑战。 XIB xml当然比NIB好,但是即使是xml,我发现合并和获得一致有效的XIB的情况比只使用另一个手动重做所做的更改更困难。

我想知道其他人在做什么,谁有可能在XIB上碰撞的人。

合并所有代码的考虑? 你使用XIB只是布局和其余的代码? 或者,你有没有运气合并XIBs,随着时间的推移,你只是手动阅读更好?

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

合并所有代码的考虑?

是,不,和“部分”。 这取决于像这样的事情:

  • 涉及的人
  • UI的复杂性
  • 您需要的实施质量。
  • 实施的预期寿命

但是,是的,它一直是,而且往往是案件不是微不足道的 – 否则,你只是通过将XIB分解成更小的部分来对抗它。 这可以工作得很好(或不),这取决于你面对的是什么。

你使用XIB只是布局和其余的代码?

取决于很多东西。

  • XIB只有它的限制,很像代码复制。 有时候我会用它来做原型,其他时候也是这样,因为这是别人所喜欢的。
  • “两者中的一小部分”可能需要大量的胶水。 有时候,它可能相当混乱 – 例如“这个行动真的在哪里?”。 当然,这也可以用来实现一些人认为XIB和程序分离的良好平衡。 XIB越简单,需要调整的次数就越less,导致合并冲突的可能性就越小。
  • 代码只是我的偏好,但有些人只是更喜欢所见即所得,而人们不太熟悉编程UI。 同样,如果质量,可重用性和可维护性没有要求(例如敲出原型),那么代码只能是矫枉过正。

或者,你有没有运气合并XIB和随着时间的推移,你只是在手动阅读更好?

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

我已经发现,IB的布局更好,因为你提到,但可能这只是我,因为我被提出这种方式.Plus代码是比布局更可重用的方式。

就我所关心的运行时间而言,尽pipe我不能100%确定地采取相同的行动。 原型在IB中比在代码中更不痛苦,我知道当然,客户不会在代码中使用原型。

我所做的就是不打扰合并,只接受分支版本或者你的版本。 这意味着你必须对谁来修改接口代码以及提交和更新有一定的约束,实际上我们没有发现它是一个问题,但是我想这取决于你的环境。 不要以此为借口停止使用接口构build器,没有什么比试图挖掘别人的代码来find一个button更糟糕了,所以你可以计算出使用它时会发生什么。 没有界面生成器,你不尊重MVC分离。