出现 “ unrecognized selector sent to class xxx” 这个错误之后,以为是调用没有实现的方法,但是查看之后不是的,这个是调用的三方库中的方法,不可能没有实现。然后上网搜索相关内容,几乎所有的修复办法都是: Target->Buid Settings->Linking 下 Other Linker Flags 项添加-ObjC或者-all_load
但是我在添加这些之后,还是不行。
在看了这篇文章之后,觉得可能是编译后引用的问题。然后就进入/user/用户/
Library/Developer/Xcode/DerivedData/当前应用编译工程代码/Build/Products/Debug-iphone/ 之下,或者可以右键libPods-XXX.a,选择【Show in Find】,即可到达此目录下,将里面的内容全部删除,然后重新编译就不会出现上述问题。
具体的原因应该是新版的cocoapods和之前版本存储三方库的.h和.a文件位置不同,之前版本中所有cocoapods中的的.h和.a文件直接放在Debug-iPhone文件夹下面。而最新版中,所有cocoapods编译的静态库都有一个自己的独立文件夹,将所有的文件夹放入Debug-iphone 文件夹下。
当然,Debug-iphone是运行在真机上的目录文件,如果是运行在模拟器的话,应该是将Debug-iphonesimulator个文件夹下的文件删除。