控制 mainBundle 资源路径 iOS 开发

Posted

技术标签:

【中文标题】控制 mainBundle 资源路径 iOS 开发【英文标题】:controlling mainBundle resource paths iOS development 【发布时间】:2014-06-12 19:44:01 【问题描述】:

我正在尝试设置一个 ipad 应用程序,该应用程序依赖于使用 javascript 来实现其部分功能。我需要将文件放在名为 javascript 的文件夹中,以使我正在使用的一些代码正常工作。

我已经从我的 javascript 文件到我设置的文件夹中创建了一个符号链接,并在适当的构建阶段将这些文件包含在复制包资源中。

我的问题是,在该部分下,xcode 说文件位于 javascript/... 所以理论上一切都应该在正确的文件夹中。但是,在我使用的代码中

[NSBundle mainBundle] pathForResource: pathName ofType:nil]]

当我在 xCode 中列出的文件路径和名称中设置文件的路径时,它返回 nil。

是否有什么我没有对应用程序做正确的事情而必须使用正确的文件路径名?

我正在使用 ipad 模拟器和 xCode 5

【问题讨论】:

【参考方案1】:

对于位于 app bundle 子目录中的文件,您希望使用方法 pathsForResourcesOfType:inDirectory:

【讨论】:

我的问题不是我无法访问子目录中的文件,而是我尝试创建的子目录没有被创建。所以基本上我的额外文件夹没有在应用程序包中使用。 如果您尝试使用pathForResource:ofType: 方法读取文件,那么您做错了。 我只获取文件位置,我还有其他代码可以处理它找到的位置。 如果你想要一个位于你的包子目录中的文件,你必须用pathsForResourcesOfType:inDirectory:明确地命名子目录。在对pathForResource:ofType: 的调用中,您不能将目录名称放在文件名中。它不会起作用。

以上是关于控制 mainBundle 资源路径 iOS 开发的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发学习-资源打包

iOS开发之常用路径及文件操作方法

资源打包

IOS NSBundle使用(访问文件夹)

从不是 mainBundle 的 NSBundle 获取文件路径

cocoapods:资源不会复制到 mainBundle