Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使用NIB构建视图是一种良好的实践吗?_Objective C_Ios_Xcode_Interface Builder_Nib - Fatal编程技术网

Objective c 使用NIB构建视图是一种良好的实践吗?

Objective c 使用NIB构建视图是一种良好的实践吗?,objective-c,ios,xcode,interface-builder,nib,Objective C,Ios,Xcode,Interface Builder,Nib,我刚读到一条评论说 还有一个不使用笔尖的原因 在iOS中使用NIB构建视图是不是很糟糕?我认为这是一个很好的系统,使您能够快速构建视图,而无需编写大量代码。我已经使用NIB有一段时间了,从来没有看到过它们的使用有什么缺点 所以我的问题是:我应该使用NIB还是为我的视图编写代码?为什么?我更喜欢尽可能使用NIB! 我的理由是: 易于维护,需要更改时,我可以立即查看结果 现在IPhone5有了一个新的解决方案——在NIB中做事情真的很容易 易于使用 要编写的代码更少 我甚至在那里创建小的弹出视图

我刚读到一条评论说

还有一个不使用笔尖的原因

在iOS中使用NIB构建视图是不是很糟糕?我认为这是一个很好的系统,使您能够快速构建视图,而无需编写大量代码。我已经使用NIB有一段时间了,从来没有看到过它们的使用有什么缺点


所以我的问题是:我应该使用NIB还是为我的视图编写代码?为什么?

我更喜欢尽可能使用NIB! 我的理由是:

  • 易于维护,需要更改时,我可以立即查看结果
  • 现在IPhone5有了一个新的解决方案——在NIB中做事情真的很容易
  • 易于使用
  • 要编写的代码更少
我甚至在那里创建小的弹出视图,并将容器视图设置为隐藏。
然后我用containerView.hidden=YES/NO显示/隐藏这些弹出视图

我更喜欢尽可能使用笔尖! 我的理由是:

  • 易于维护,需要更改时,我可以立即查看结果
  • 现在IPhone5有了一个新的解决方案——在NIB中做事情真的很容易
  • 易于使用
  • 要编写的代码更少
我甚至在那里创建小的弹出视图,并将容器视图设置为隐藏。 然后我用containerView.hidden=YES/NO显示/隐藏这些弹出视图

我认为“永远不要使用笔尖”的说法是荒谬的。你只需要知道什么时候使用它们,什么时候避免它们。它们适用于复杂但静态的视图,在这些视图中,您将浪费大量时间获得正确的坐标和大小。当然,对于动态GUI,您应该使用代码

然而,有些人可能会担心GUI超出了他们的控制范围,如果他们不通过代码自己创建GUI并查看每个细节的话。但这是一个主观的观点

一个明显的缺点是,如果使用源代码管理,XIB很难合并。Xib文件实际上是XML文件,当您在GUI中更改某些内容时,会在后台添加、删除或更改许多引用。这将导致非常难以解决的冲突

另一个原因可能是性能原因。从nib文件加载GUI稍微慢一些(在某些情况下),然后直接在代码中创建GUI。有些人建议不要为GUI使用任何NIB,因为它必须在应用程序启动时加载,以缩短启动时间。但我不确定这两者之间是否存在显著差异。

我认为“永远不要使用笔尖”的说法是荒谬的。你只需要知道什么时候使用它们,什么时候避免它们。它们适用于复杂但静态的视图,在这些视图中,您将浪费大量时间获得正确的坐标和大小。当然,对于动态GUI,您应该使用代码

然而,有些人可能会担心GUI超出了他们的控制范围,如果他们不通过代码自己创建GUI并查看每个细节的话。但这是一个主观的观点

一个明显的缺点是,如果使用源代码管理,XIB很难合并。Xib文件实际上是XML文件,当您在GUI中更改某些内容时,会在后台添加、删除或更改许多引用。这将导致非常难以解决的冲突


另一个原因可能是性能原因。从nib文件加载GUI稍微慢一些(在某些情况下),然后直接在代码中创建GUI。有些人建议不要为GUI使用任何NIB,因为它必须在应用程序启动时加载,以缩短启动时间。但我不确定是否存在显著差异。

您在哪里看到的?可能是vs
xib
s吗?不,有人对空的tableviews没有跳转有问题,而该评论就在答案下面。我从来没有质疑过笔尖的价值,但它让我怀疑是否有真正的缺点。只要使用你觉得舒服的东西就行。忽略任何速度优势声明,因为它们是不相关的。因为故事板,我从不使用NIB。简单明了,故事板在勾画你的用户界面方面是令人惊奇的,它允许非程序员看到你的程序流程。你在哪里看到的?可能是vs
xib
s吗?不,有人对空的tableviews没有跳转有问题,而该评论就在答案下面。我从来没有质疑过笔尖的价值,但它让我怀疑是否有真正的缺点。只要使用你觉得舒服的东西就行。忽略任何速度优势声明,因为它们是不相关的。因为故事板,我从不使用NIB。简单明了,故事板在勾画你的用户界面方面是非常棒的,它允许非程序员看到你的程序流程。我同意。关于性能,NIB是在运行时读取的吗?编译器没有把它们转换成机器代码或其他什么吗?你测量过这个理论吗?或者你从哪里得到的信息表明,XIBs会比手动实例化的接口慢?@Jeroenmons没有,NIB没有被编译成“机器代码或其他什么”。它们是包含序列化对象的数据文件,这些对象在运行时加载nib时被反序列化。我同意。关于性能,NIB是在运行时读取的吗?编译器没有把它们转换成机器代码或其他什么吗?你测量过这个理论吗?或者你从哪里得到的信息表明,XIBs会比手动实例化的接口慢?@Jeroenmons没有,NIB没有被编译成“机器代码或其他什么”。它们是数据文件,包含在运行时加载nib时反序列化的序列化对象。