iOS:[NSBundle pathForResource:ofType:inDirectory] 返回 nil?
Posted
技术标签:
【中文标题】iOS:[NSBundle pathForResource:ofType:inDirectory] 返回 nil?【英文标题】:iOS : [NSBundle pathForResource:ofType:inDirectory] return nil? 【发布时间】:2015-08-22 05:12:57 【问题描述】:NSURL *url =[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"index" ofType:@"html"inDirectory:@"www"]];
给我的错误
[NSURL initFileURLWithPath:]: nil string parameter'
我已经将文件夹 'www' 复制到我的项目但给了我错误,如果我不写 inDirectory:@"www" 那么它将采用路径但不显示我想要显示的确切页面.
【问题讨论】:
Xcode 项目中的“www”文件夹是蓝色还是黄色? xcode 中的黄色 然后删除方法调用的inDirectory:
部分。这仅适用于蓝色文件夹,而不适用于黄色文件夹。
那么如何添加文件夹蓝色以便我可以使用目录
【参考方案1】:
当您向项目添加资源时,它们都会被复制到应用程序包的根目录(默认情况下)。您在项目中设置的任何类型的黄色子文件夹都不会影响资源在实际应用中的组织方式。
在应用程序的最终资源包中包含实际文件夹的唯一方法是在 Xcode 项目中使用蓝色文件夹。
黄色文件夹只是“组”。
蓝色文件夹是“文件夹引用”。当您选择“将文件添加到 Project Name...”并在“添加文件”对话框中选择“创建文件夹引用”选项时会创建这些文件(与导致黄色组文件夹的“创建组”选项相反) .
任何蓝色文件夹引用及其内容都以相同的结构放入您的应用程序包中。
因此,对于您的情况,您需要将“www”文件夹添加为文件夹引用而不是普通组。完成此操作后,带有inDirectory:
参数的原始代码将按需要运行。
如果您有任何问题,您可以随时查看已构建应用的 .app 文件夹,以验证是否已创建所需的目录结构。
【讨论】:
以上是关于iOS:[NSBundle pathForResource:ofType:inDirectory] 返回 nil?的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 中获取资产文件的路径:缺少 NSBundle [重复]
IOS开发-UI学习-NSBundle和NSHomeDirectory的区别
iOS开发之0行代码加载NSBundle中的@2x与@3x图片