【问题标题】:IOS Storyboard serializationIOS Storyboard 序列化
【发布时间】:2021-01-29 23:42:04
【问题描述】:

我对 IOS 开发还很陌生,遇到了一些问题。

假设:当我使用情节提要并在其中创建视图时,情节提要通过 init(frame: CGRect) 创建一个视图,然后将其序列化并创建一些包含此信息的文件。当应用程序在设备上启动时,它使用此序列化数据通过 init(coder: NSCoder) 创建对象

我的假设是正确的还是我遗漏了什么?

【问题讨论】:

    标签: ios swift storyboard


    【解决方案1】:

    是的,你的假设是正确的。几乎。在编译期间,Xcode 将为情节提要中的每个“视图控制器场景”创建一个.nib 文件。 .nib 文件的名称可以通过“object id”属性查看。然后将 nib 文件与您的应用程序包一起部署。

    .nib 文件包含 - 除其他外 - 序列化的 UIView 层次结构,它将在运行时由 init(coder:) 初始化程序反序列化。

    顺便说一句,当使用.xib 文件时,Xcode 将为每个.xib 文件创建一个.nib 文件。

    【讨论】:

    • 非常感谢您的回答,最后一个问题,实际调用序列化 UIView 的方法是什么,我目前正在查看文档,只找到 encodeRestorableState(with coder: NSCoder) 但我认为这有点不同其他参考encodeWithCoder(coder: NSCoder)
    • 视图是Xcode从xml文件中序列化出来的,所以我个人不知道内部用的是什么。 encodeRestorableState 用于应用程序状态恢复,因此您不保存视图,而是保存视图的状态(数据、编辑模式、光标位置、当前导航层次结构等)
    猜你喜欢
    • 2015-04-20
    • 2015-05-30
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    相关资源
    最近更新 更多