由于我引入头文件了#import "UITableView+FDTemplateLayoutCell.h" 还一直报下面的crash:
-[UITableView fd_heightForCellWithIdentifier:cacheByIndexPath:configuration:]: unrecognized selector sent to instance
我就纳闷了,然后突然发现CocoaPods报了下面的错;
1 2 3 4 5 6 7 | |
然后才发现原来Xcode的Other Linker Flags 配置出错了;
于是好好了解了一下
链接器(Other Linker Flags)
首先,要说明一下Other Linker Flags
到底是用来干嘛的。说白了,就是ld
命令除了默认参数外的其他参数。ld
命令实现的是链接器的工作,详细说明可以在终端man ld
查看。
如果有人不清楚链接器是什么东西的话,我可以作个简单的说明。
一个程序从简单易读的代码到可执行文件往往要经历以下步骤:
源代码 > 预处理器 > 编译器 > 汇编器 > 机器码 > 链接器 > 可执行文件
源文件经过一系列处理以后,会生成对应的.obj
文件,然后一个项目必然会有许多.obj
文件,并且这些文件之间会有各种各样的联系,例如函数调用。链接器做的事就是把这些目标文件和所用的一些库链接在一起形成一个完整的可执行文件。 如果想详细了解,这里不描述了,点击传送 关于Xcode的Other Linker Flags;
解决办法:
- 选择程序 xxx -> TARGETS -> Build Settings
- 找到 Other Linker Flags 如果里面有配置参数先删除,添加 $(inherited)
- 然后执行 pod update --verbose --no-repo-update
本文部分内容转自CocoaPods 集成问题总结;