Cocoa touch 我应该什么时候使用界面生成器?

Cocoa touch 我应该什么时候使用界面生成器?,cocoa-touch,macos,interface-builder,Cocoa Touch,Macos,Interface Builder,在我学习iphoneapi时,我正在使用的这本书让我尽一切可能使用界面生成器。我们(有时在这里很孤独)也在编写代码,但我真的觉得我对界面生成器有了相当的了解 我知道Interface Builder与其他GUI Builder不同,因为它使用序列化对象,不编写代码。这应该是件好事。那么…在日常工作中,它是首选的工具,还是我应该试着摆脱对界面生成器的依赖 另外:如果你认为“这取决于你在做什么”,那它取决于什么?我应该如何决定是否使用Interface Builder 注意:这个问题的主观性和争论性

在我学习iphoneapi时,我正在使用的这本书让我尽一切可能使用界面生成器。我们(有时在这里很孤独)也在编写代码,但我真的觉得我对界面生成器有了相当的了解

我知道Interface Builder与其他GUI Builder不同,因为它使用序列化对象,不编写代码。这应该是件好事。那么…在日常工作中,它是首选的工具,还是我应该试着摆脱对界面生成器的依赖

另外:如果你认为“这取决于你在做什么”,那它取决于什么?我应该如何决定是否使用Interface Builder


注意:这个问题的主观性和争论性版本的标题是:界面生成器:严肃的工具还是只适合孩子?但我决定反对它,因为我想避免问题被解决。

界面生成器确实是用来制作应用程序的。看看任何基于可可粉的Mac应用程序——这是大多数不是Adobe或Microsoft开发的应用程序——你会发现它充满了笔尖。iPhone应用程序不使用Interface Builder的情况稍微常见一些(因为最初的SDK没有IB),但它仍然是一个非常常用的工具


Interface Builder和大多数其他GUI构建器之间的区别在于,Cocoa和Interface Builder在设计时考虑到了彼此。事实上,如果你搜索,你会发现多年来很多人都在想,不使用Interface Builder如何制作Cocoa应用程序。(答案总是一样的:您可以在代码中完成所有工作,但这只会浪费您的时间,使设计好的界面变得更加困难。)

如果您计划使用标准的UIKit用户界面元素,interface builder非常棒。使用Interface Builder设计基于UIKit的用户界面也有助于您遵守

只有少数情况下您不想使用Interface Builder,最明显的情况是提供自己独特外观的游戏


我认为您不必担心建立“对接口生成器的依赖”。它是一种工具,就像其他工具一样。使用它不是一种依赖,它只是我们完成事情的方式。

Interface Builder是一个很棒的工具。尽可能多地使用它。

当您无法仅使用Interface Builder执行某些操作时,则是时候编写混合了IBOutlet和代码的代码,或者只在代码中执行这些操作。

Interface Builder不会生成代码,它只会创建现有类的对象图。如果您查看nib文件,您可以看到这一点。它只是一个规则列表,用于创建什么对象以及在它们之间设置什么关系。nib中没有代码,而且各种
loadFromNib
方法中的代码非常少


正是Objective-c中的运行时耦合使这一切成为可能。我认为没有其他语言能真正做到这一点

是的,差别很小。不同之处在于,IB使用的存储和RAM内存很少,而这些都是通过编程生成的接口。这是我的简单例子。{我是OBJ-C的新手}

源代码和二进制应用程序在这里

谢谢,我就是这么想的。至少这是一个积极的音符,在一个充满引用计数的日子里。我知道这是一个古老的问题,也是一个古老的答案——但是我完全同意这个答案。@Moszi,你不妨在这里通读Chuck的所有答案。它们始终具有洞察力和信息量。感谢Brian,其他平台上的其他GUI工具并非如此。用构建器创建的代码通常看起来很糟糕,很难维护。所以我不认为它和其他任何工具一样。也许我错了,但我认为即使是Java也有运行时耦合(通过反射和动态调用)。。。虽然没有界面生成器,但在许多语言中理论上都是可能的。不是吗?Java的部分灵感来自Objective-C,所以它很接近,但是IIRC,Java没有对应的“id”引用,所以在这方面不如Objective-C灵活。每种语言都有比其他语言更好的地方,运行时耦合是Objective-C forte。