所以,我有一个简单的屏幕保护程序,加载一个工作正常的外部文件.我决定在应用程序中嵌入HTML源以减少外部依赖性会更好.
我将HTML文件拖到资源文件夹,它位于顶层没有子文件夹或任何东西.
我确保Add to targets包含我的应用程序,同时选择’create folder references’和’copy files are if’.我使用以下内容获取文件的URL,但它返回nil
NSURL *fileUrl = [[NSBundle mainBundle] URLForResource:@"embedded" withExtension:@"HTML"]; System Preferences[10185]: fileUrl returned (null)
我已经阅读了类似问题的所有其他SO问题,但似乎没有任何修复.我经历过并检查过它们.
如果我显示最终版本的包内容,那么embedded.HTML就在那里.我错过了一些非常明显的东西吗
编辑添加
在构建阶段,它列在copy Bundle Resources中
xcode版本是6.1.1
解决方法 经过一番相当大的挖掘和一点运气,我发现了这一点NSURL *fileUrl = [[NSBundle mainBundle] URLForResource:@"embedded" withExtension:@"HTML"];
是不正确的,我应该使用
NSURL *fileUrl = [[NSBundle bundleForClass:[self class]] URLForResource:@"embedded" withExtension:@"HTML"];
代替.
即NSBundle bundleForClass:[self class]而非NSBundle mainBundle将允许访问屏幕保护程序包.
可能很明显,但只有你知道;)
见Apple Developer NSBundle Class Reference
总结以上是内存溢出为你收集整理的xcode – URLForResource返回nil全部内容,希望文章能够帮你解决xcode – URLForResource返回nil所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)