ios - 哪种方法更有效? Storyboard还是 XIB?

标签 ios objective-c storyboard xib

我的问题与我的标题所暗示的略有不同。 我曾与 xib 合作过。现在我正在尝试使用 Storyboard。 我的问题是,如果我们从另一个类浏览一个类,StoryBoard 是否为更好的内存管理提供了好处。 假设我们有 2 个 ViewController:ViewControllerA 和 ViewControllerB。 我们正在尝试通过 ViewControllerA --> ViewControllerB。 现在,在 Xib 中,我们的方法如下;

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

Storyboard中的位置,

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

    }
}

然后做,

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

所以,我的问题是我们在 Xib 中分配了我们的类,而在 StoryBoard 中我们没有分配。 那么storyboard有内存分配优势吗?

最佳答案

我的观点是,专业开发人员必须使用 xibs,但对于刚接触编程的业余爱好者,开发人员如果使用 Storyboard 可能会有所帮助。

Storyboard

在使用单个 Storyboard进行了 3 年的项目工作后,我可以说出很多缺点:

1) 构建起来真的非常非常慢,即使是非常非常非常少的思考(其中的每个 View 都必须重建)。如果 Storyboard 变大,即使使用 8 或 16 gb ram 的 iMac 也很难编辑。甚至很难打开它。

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

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

4) 如果使用 Storyboard自动添加单元格的单元格,则不能在两个点中使用相同的单元格构建。

优点:

1) 自动单元格(但这也是一个缺点,因为单元格不能按原样重用于另一个 View )

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

Xibs:

1) 完全便携。

2) 打开/编辑/构建比 Storyboard变大要快得多

结论:

如果您是一名业余开发者,会出于乐趣为自己的业务制作应用程序,那么您应该使用 Storyboard,因为它会更容易理解事物。 但是,如果你是一名专业开发人员,你必须将 xibs 用于 VC、Cells 等,因为这是使它们真正可重用和可移植的唯一方法,以便为下一个项目争取更多时间,甚至在不得不这样做时做一点改变或重新构建 Storyboard。

解释为什么 xibs 对我来说更“可重用和便携”: 编程中的东西必须保存在不同的模型、文件、实体、模块中。一个人必须尽可能少地依赖另一件事

关于ios - 哪种方法更有效? Storyboard还是 XIB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22524232/

相关文章:

iOS:可以导出/导入 Storyboard布局

ios - 方法中实例变量的更改不反射(reflect)原始实例变量的更改

objective-c - 在这种情况下如何实现 UINavigationController?

ios - 如何在 iOS 中标记拖动到达屏幕边界时移动 map 相机?

ios - 我应该如何快速上传带有图像的文本

iphone - 为什么我的数组实例超出范围?

iphone - Storyboard Controller 未释放

ios - NSURLSession 成员引用类型 struct objc_class 是一个指针

objective-c - iOS 中自定义 UIStatusBar

ios - 修复静态 tableviewcontroller xcode 8 中 Storyboard 中的所有警告