标签(空格分隔): 插件
[toc]
1.使用NSBundle无法获取资源路径
错误代码
NSString * dicPath = [[NSBundle mainBundle] pathForResource:@"word" ofType:@"json"];
NSLog(@"%@",dicPath);
输出的结果为空,检查本地目录文本确实存在,并且文件名和后缀名称没有拼写错误.
错误原因
因为是插件项目[NSBundle mainBundle]
所获取的目录是Xcode的文件包,而Xcode包中没有也不可能包含手动添加的资源文件,所以这里就得到一个空得路径
解决办法
偶然查看了一下Miku插件的源码,发现作者也使用了本地资源.最终找到了解决办法
//这个路径是插件的路径
NSString * pluginPath = @"~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/JXSpeechCode.xcplugin";
//通过插件路径获取插件文件包
NSBundle * pluginBundle = [NSBundle bundleWithPath:[pluginPath stringByExpandingTildeInPath]];
//在插件中查找文件
NSString * dicPath = [pluginBundle pathForResource:@"word" ofType:@"json"];
最终输出了正确的路径地址
时间:13:49:06 行号:21 文件名:JXTranslation.m Log:/Users/admin/Library/Application Support/Developer/Shared/Xcode/Plug-ins/JXSpeechCode.xcplugin/Contents/Resources/word.json