插件开发问题收集

标签(空格分隔): 插件


[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

你可能感兴趣的:(插件开发问题收集)