关于ios:哪种方法更有效? StoryBoard或XIB?

Which is more efficient way? StoryBoard or XIB?

我的问题与我的标题建议略有不同。
我曾与xib合作。 现在,我正在尝试使用情节提要。
我的问题是,如果我们要从一个班级浏览另一个班级,那么StoryBoard是否在为更好的内存管理提供好处。
假设我们有2个ViewController:ViewControllerA和ViewControllerB。
我们正在尝试通过ViewControllerA-> ViewControllerB。
现在,在Xib中,我们的方法如下:

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

在故事板中,

1
2
3
4
5
6
7
8
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"Second"])
    {
        SecondViewController *objSecond = (SecondViewController*)[segue destinationViewController];

    }
}

而且,

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

因此,我的问题是我们在Xib中分配我们的课程,而在StoryBoard中则不在。
因此,情节提要中有任何内存分配优势吗?


我的观点是,如果开发人员使用故事板,那么专业的开发人员MUST use xibs,但对编程来说是新手的业余爱好者,可能会得到帮助。

故事板

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

1)即使很少考虑(构建中的每个视图都必须重建),构建起来的速度确实非常慢。如果Storyboard变大,即使使用8或16 GB RAM的iMac,也很难进行编辑。甚至很难打开它。

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

3)即使增加或编辑最小的布局约束,项目变大时也会有很大的滞后,您再也不想碰它了。

4)如果通过情节提要的自动单元格添加使用单元格,则不能在两个点上使用同一单元格构建。

优点:

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

2)Segues等可以使人们很容易从单一角度了解正在发生的事情。

Xibs:

1)完全便携。

2)打开/编辑/构建速度比故事板大得多

结论:

如果您是一个业余爱好者开发人员,并且会为自己的业务制作应用程序而乐,那么您应该使用情节提要,因为这样会更容易理解。
但是,如果您是专业的开发人员,则必须对VC,Cells等使用xibs,因为这是使它们真正可重用和可移植的唯一方法,以便为下一个项目赢得大量时间,甚至在进行一些更改或再次构建情节提要。

解释为什么xib对我来说更"可重用且可移植":
编程中的事物必须保存在不同的模型,文件,实体,模块中。一个人必须尽可能少地依赖另一件事


并不是说哪个是最好的。因为根据团队的需求来判断哪个是好的。

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

Xcode使用故事板和Xibs与以编程方式创建视图

使用XIB

优点:

  • 您可以快速组合用户界面

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

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

  • 擅长布局元素并在视觉上发现未对准之处。对布局稍作调整很容易

缺点:

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

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

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

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

  • 难以调试(即,如果您忘记在Interface Builder中建立连接或建立错误的连接)

故事板

优点:

  • 故事板非常适合中小屏幕的应用,并且视图之间的导航要求相对简单

  • 您可以在不编写太多代码的情况下模拟应用程序的流程

缺点:

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

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

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

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


比较XIB和StoryBoard,StoryBoard速度很快。

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

当我们编译所有StoryBoard时,将在Storyboard中将其存档。并取消存档,然后运行该应用程序。
但是,以编程方式,仅在运行时分配类。

推荐做使用情节提要的项目。


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


就情节而言,使用情节提要是一个更好的选择,尽管情节提要相对于xib文件还具有其他优势,Apple还建议对情节提要使用情节提要而非xib文件。