-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.png
2. 能正常运行,运行中报出奇怪的错误,确保不是代码问题,可以试试加上-ObjC【困扰了我很久的问题就是这样解决了的😢】

编译错误有很多种情况,本文说的只是困扰了自己很久的问题的解决方法。如果还是不行,请见谅。


好好学习,天天向上。<( ̄oo, ̄)/


Potato_zero.jpg
上一篇下一篇

猜你喜欢

热点阅读