哪种方式更有效? StoryBoard还是XIB?

我的问题与我的标题建议略有不同。 我和xib一起工作过。 现在我正在尝试使用故事板。 我的问题是,如果我们从另一个类中浏览一个类,那么StoryBoard可以为更好的内存管理带来好处。 假设我们有2个ViewControllers:ViewControllerA和ViewControllerB。 我们正在尝试通过ViewControllerA – > ViewControllerB。 现在,在Xib我们的方法如下;

ViewControllerB *VCB = [ [ViewControllerB alloc] init]; [self.navigationController pushViewController: VCB Animated: YES]; 

故事板在哪里,

 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"Second"]) { SecondViewController *objSecond = (SecondViewController*)[segue destinationViewController]; } } 

而且,做

 [self performSegueWithIdentifier:@"Second" sender:self]; 

所以,我的问题是我们在Xib中分配我们的类,在storyBoard中我们不是。 故事板中是否有任何内存分配优势?

这并不是说哪一个是最好的。 因为根据团队要求,哪一个是好的。

如果您是单个开发人员,最好使用故事板,因为它消耗的时间更少。 如果团队由许多开发人员组成,请使用xib,否则,合并模块/任务并不容易。

xcode的-使用-故事板-和- xibs抗创建的视图,编程

使用XIB

优点:

  • 您可以快速组合UI

  • 直接实现具有最少数量屏幕的小型应用程序

  • 您可以为不同的本地化(即语言或国家/地区)提供单独的XIB

  • 擅长布置元素并在视觉上发现错位。 轻松调整布局很容易

缺点:

  • 在团队环境中工作时难以合并冲突(难以区分,合并和读取)

  • 高动态视图无法描述为XIB

  • 性能方面,它比通过代码创建视图慢,因为需要从磁盘读取xib并进行分析/解析

  • XIB缺少您可以在代码中进行的自定义,例如Quartz的东西(阴影,圆角)

  • 更难调试(即如果您忘记在Interface Builder中建立连接或进行错误连接)

故事板

优点:

  • 故事板适用于具有少量到中等数量屏幕的应用程序,并且视图之间的导航要求相对简单

  • 您可以模拟应用程序的流程,而无需编写太多(如果有的话)代码

缺点:

  • 故事板与iOS 5之前的版本不兼容,因此无法支持iOS 4.3

  • 在团队环境中很难并行工作,因为每个人都在修改同一个文件

  • 同样,在GIT中合并冲突的故事板将是一件痛苦的事

  • 人们在使用故事板时遇到了Xcode中的错误(例如由于不一致而不得不经常刷新DerivedData文件夹)

我的观点是,专业开发人员MUST use xibs ,但是如果他使用故事板,那么对于编程,开发人员来说,开发人员可能会有所帮助。

故事板

使用单个故事板进行了3年的项目工作后,我可以说出lot of disadvantages

1)即使是非常非常小的想法,它的构建也非常非常缓慢(其中的每个视图都必须重建)。 如果故事板变大,即使使用带有8或16 GB RAM的iMac也很难编辑。 它甚至很难打开它。

2)没有可重用性。 您无法立即将View / ViewController及其视图导入另一个项目。 它将与其他ViewControllers,Views或Segues连接,这将使它像一个大的“不要触摸”的想法。

3)即使对于要添加或编辑的最小布局约束,项目变大也存在很多延迟,您永远不想触摸它。

4)如果通过自动添加故事板的单元格来使用单元格,则不能在两点中使用相同的单元格构建。

优点:

1)自动单元格(但这也是一个缺点,因为单元格不能像其他视图一样重复使用)

2)Segues等可以让人们从单一的角度理解正在发生的事情。

Xibs:

1)完全便携。

2)打开/编辑/构建比变大的故事板快得多

结论:

如果你是一个业余爱好者开发者,他会为他的业务制作一个有趣的应用程序,你应该使用故事板,因为它更容易理解事物。 但是,如果你是一个专业的开发人员,你必须使用xibs用于VC,Cell等,因为这是使它们真正可重用和便携的唯一方法,以便为下一个项目获得这么多时间,或者甚至不得不做一点改变或再次构建故事板。

解释为什么xib对我来说更“可重用和可移植”:编程中的东西必须保存在不同的模型,文件,实体,模块中。 一个人必须至少依赖于另一件事,因为它可以得到

比较XIB和storyBoard,StoryBoard很快。

但实际上,以编程方式完成整个项目时速度很快。

在故事板中,当我们编译所有storyBoard是归档到文件。 然后unArchive运行应用程序。 但是,在编程中,类仅在运行时分配。

故事板现在是苹果工程师强烈推荐的,强烈建议每件事都是中心的,内存管理由编译器完成。 在某些情况下,如何设计师要求推动控制器并且没有问题。 但故事板是推荐的,易于理解的视图部分MVC

尽管故事板还具有xib文件的其他优点,但使用Storyboard对内存利用率来说是一个更好的选择,Apple也建议在xib文件上使用storyboard。

Interesting Posts