有了百度地图的经验,相对来说,使用高德SDK 就没有这么晕头转向的,但是在集成的时候,还是遇到了几个问题
问题1:手动导入SDK后,运行的时候发现AMap.bundle导入不成功,其实AMap.bundle是导入了的,但是可能是因为在MAMapKit.framework中,xcode找不到吧,所以解决得方法就是在MAMapKit.framework中找到AMap.bundle,然后拷贝到外面的文件夹中,此时一般xcode就会同步到bundle中,万一没的话那么就自己导入吧
问题2:就是在集成搜索的时候,运行程序时,直接崩溃,提示的原因就是说执行搜索方法的时候,没有这个方法,看到这里,不仅程序崩溃了,老夫的内心也是崩溃的,首先我就想想到可能是局部变量提前释放,导致指针不存在,后来我把所有的局部变量变成属性,还是不能解决,此时我就想,难道高德api有问题???(当然意淫一下就算了)
后来毫无头绪的时候,想着肯定是配置环境的问题,找呀找呀找,原来是这一步没有配置
在 TARGETS->Build Settings->Other Linker Flags 中添加-ObjC。
-ObjC:加了这个参数后,链接器就会把静态库中所有的Objective-C类和分类都加载到最后的可执行文件中
-all_load:会让链接器把所有找到的目标文件都加载到可执行文件中,但是千万不要随便使用这个参数!假如你使用了不止一个静态库文件,然后又使用了这个参数,那么你很有可能会遇到ld: duplicate symbol错误,因为不同的库文件里面可能会有相同的目标文件,所以建议在遇到-ObjC失效的情况下使用-force_load参数。
-force_load:所做的事情跟-all_load其实是一样的,但是-force_load需要指定要进行全部加载的库文件的路径,这样的话,你就只是完全加载了一个库文件,不影响其余库文件的按需加载
所以千万不要忘了
接下来就是集成了,这个相对来说比百度封装的好一点
具体,完善再上传吧