将 xib 文件添加到 Swift 包
Add a xib file to a Swift Package
我想开始使用模块化代码与新的 Swift 包管理器集成 Xcode 11.
问题是我似乎无法将任何类型的 UI 文件添加到我的新包中。我只需要添加一个 xib 文件。
这是如何实现的?
目前 Swift 包仅支持源代码,因此您不能将 xib 文件添加到包中。阅读缺少什么?以下文章中的部分:
Creating Swift Packages in Xcode
更新
Xcode 12 允许您将不是源代码文件的文件添加到 Swift 包中。我还没有创建 Swift 包,所以我无法提供有关如何将 xib 文件添加到 Swift 包的详细说明。但正如@ffritz 在对此答案的评论中提到的那样,Apple 的文档中有一篇关于在 Swift 包中捆绑资源的文章。
感谢上面的 Marks 回答和他分享的 Apple 文档,我能够解决在我的 Swift 包中加载 .xib 文件的问题。我会在这里为以后的围观者解释一下我的步骤。
将新 Swift 包中的所有 .xib 文件移动到名为 Resources 的文件夹中(位于 /Sources/PackageName/Resources
位置)
更改我拥有的以编程方式加载这些 .xib 文件的任何代码以包含模块包。例如:
super.init(nibName: "MyViewController", bundle: nil) //Old way of initialising
super.init(nibName: "MyViewController", bundle: Bundle.module) //New way of initialising
当您使用资源创建 Swift 包时 Bundle
获得每个包的自动静态标识符,例如,名为 Moon
的包将通过 Bundle.moon
[=16= 访问]
例如,要在 Moon
中使用名为 Crater.xib
的 XIB 实例化一个单元格,您将使用
let nib = UINib(nibName: "Crater", bundle: Bundle.moon)
我想开始使用模块化代码与新的 Swift 包管理器集成 Xcode 11.
问题是我似乎无法将任何类型的 UI 文件添加到我的新包中。我只需要添加一个 xib 文件。
这是如何实现的?
目前 Swift 包仅支持源代码,因此您不能将 xib 文件添加到包中。阅读缺少什么?以下文章中的部分:
Creating Swift Packages in Xcode
更新
Xcode 12 允许您将不是源代码文件的文件添加到 Swift 包中。我还没有创建 Swift 包,所以我无法提供有关如何将 xib 文件添加到 Swift 包的详细说明。但正如@ffritz 在对此答案的评论中提到的那样,Apple 的文档中有一篇关于在 Swift 包中捆绑资源的文章。
感谢上面的 Marks 回答和他分享的 Apple 文档,我能够解决在我的 Swift 包中加载 .xib 文件的问题。我会在这里为以后的围观者解释一下我的步骤。
将新 Swift 包中的所有 .xib 文件移动到名为 Resources 的文件夹中(位于
/Sources/PackageName/Resources
位置)更改我拥有的以编程方式加载这些 .xib 文件的任何代码以包含模块包。例如:
super.init(nibName: "MyViewController", bundle: nil) //Old way of initialising super.init(nibName: "MyViewController", bundle: Bundle.module) //New way of initialising
当您使用资源创建 Swift 包时 Bundle
获得每个包的自动静态标识符,例如,名为 Moon
的包将通过 Bundle.moon
[=16= 访问]
例如,要在 Moon
中使用名为 Crater.xib
的 XIB 实例化一个单元格,您将使用
let nib = UINib(nibName: "Crater", bundle: Bundle.moon)