gpt4 book ai didi

ios - Swift 框架无法在另一个包中获取文件

转载 作者:行者123 更新时间:2023-11-28 06:56:48 26 4
gpt4 key购买 nike

我正在提高 swift 的技能。我正在编写一个框架,该框架将依赖于不属于该框架的文件。它将由导入框架的应用程序创建。

它在模拟器上运行时运行良好,但在界面生成器中的实时渲染却因为找不到文件而崩溃。我以前在 Objective-c 中做过同样的事情,我知道解决方案是界面构建器使用不同的包。解决方案是使用:

[[NSBundle bundleForClass:[self class]] pathForResource:<fileName> ofType:<fileType>]

我在网上搜索过,我相信 swift 中的等价物是:

let path:String? = NSBundle(forClass: self.dynamicType).pathForResource(<fileName>, ofType: <fileType>)

但是它总是在实时渲染中返回 nil。同时:

let path:String? = NSBundle.mainBundle().pathForResource(<filename>, ofType: <fileType>)

在模拟器中运行良好,这意味着该文件显然存在并且是已完成应用程序的一部分。任何人都知道为什么会这样?我是否也缺少某个设置?

最佳答案

在 Swift 中,代码如下所示:

return NSBundle.init(forClass: <ClassName>.self).pathForResource(<FileName>, ofType: <FileType>)

例如,要从另一个包中获取阿拉伯语的本地化资源,您的代码将如下所示:

return NSBundle.init(forClass: <ClassName>.self).pathForResource("ar", ofType: "lproj")

我认为您的部分问题可能是您正在尝试点击另一个包,但您正在通过调用 [[NSBundle bundleForClass:[self class]] 访问当前类的包.

我写的 objective-C 不多,但我想你能帮我翻译一下。

关于ios - Swift 框架无法在另一个包中获取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33372664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com