Heim > Fragen und Antworten > Hauptteil
用了 NSString * jsStr = [[NSString alloc]initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"xx" ofType:@"js"] ,一直报 Error Domain=NSCocoaErrorDomain Code=258 "The file name is invalid ,有没有知道怎么解决的?
迷茫2017-05-02 09:35:31
静态库好像不行,必须搞bundle,而且放入的bundle的js文件会被系统自动转换为.txt文件,更好的解决办法是将js代码压缩,然后进行URLEncode编码可以解决这个问题。
给我你的怀抱2017-05-02 09:35:31
可以将你需要的文件一起打包到 Framework
里面,然后通过 NSBundle
去获取这个文件。不同的是不能使用 mainBundle
,因为此时的 mainBundle
指的引用 Framework
的这个程序。当然找不到你的 JS 文件了。
解决方法:
在 Framework
的工程里面,Target->Build Phases->Copy Bundle Resources
里面加入你需要打包进 Framework
的文件
需要读取某个文件时使用
NSBundle *bundle = [NSBundle bundleWithIdentifier:@"your.framework.id"];
if (bundle) {
NSString *filePath = [bundle pathForResource:@"somefile" ofType:@"js"];
// ...
}
PS: Framework
需要为动态库才行!