-ObjC这个大魔王
2018-08-11 本文已影响13人
欢乐的乐
一直有很多博客说,引入了第三方就在Target->Build Settings->Other Linker Flags添加-ObjC , -force_load, -all_load
-all_load 和 -force_load
使用-all_load 或者-force_load标志,它们的作用都是加载静态库中所有文件,不过all_load作用于所有的库,而-force_load后面必须要指定具体的文件他们加载的位置也是在Xcode的Build Settings下Other Linker Flags里面。
【我一般都使用-force_load比较多,要是build出错了,还能对症下药】
-ObjC
引入了-ObjC标志,它的作用就是将静态库中所有的和对象相关的文件都加载进来。
这个-ObjC就像是魔王般的存在,有的博客说最要不要使用,会加大App的体积,可是有的第三方库又必须要添加才不会出错。
???可是有的第三方库又必须要添加才不会出错???
-force_load可以把类加载进来,-ObjC也可以把类加载进来,有什么区别??
-ObjC标志,它和Objective-C的一个重要特性:类别(category)有关。如果使用-ObjC会把category文件也加载【还有一些可能没用的文件】,所以就造成有的说法,会把App的体积增大。
得出总结
1. 引入第三方库,build报错可以试试-force_load,记得加上具体文件的路径在下一行
- force_load.png2. 能正常运行,运行中报出奇怪的错误,确保不是代码问题,可以试试加上-ObjC【困扰了我很久的问题就是这样解决了的😢】
编译错误有很多种情况,本文说的只是困扰了自己很久的问题的解决方法。如果还是不行,请见谅。
好好学习,天天向上。<( ̄oo, ̄)/
Potato_zero.jpg