博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编译参数-ObjC的说明
阅读量:4520 次
发布时间:2019-06-08

本文共 724 字,大约阅读时间需要 2 分钟。

一些第三方库里对系统库的类加了category,

这时,就需要使用编译参数:-ObjC,这样第三方库中对系统类作的扩展方法才能在工程中使用。

 

但是使用-Objc后,会产生两个问题:

1、undefined symbols 

2、duplicate symbol

 

undefined symbols 说明工程中没有引入第三方库引用的库。

如果不加-ObjC参数,则在编译时不会出错,但运行时用到了没引用库的方法,则系统会崩溃。

这个问题好解决。只要找到缺的库,引入工程就可以了。

 

duplicate symbol的问题就不好解决了,说明第三方库中的类名和工程中的类名,或其它第三方库中的类名重名了。

最常见的比如Reachability这个类,如果第三方库中引用了,自己的工程中也引用了,就会报duplicate symbol。

如果引用的第三方库没有源代码,就只能将自己工程中的重名类重命名了。

 

应对上面的问题,如果自己要制作一个库的话,要注意两点:

1、避免对系统类加category,这样,别人用你的库时,不加ObjC参数也可以用你的库。

2、如果库中用到了其它的第三方的源代码,尤其是用的比较普遍的,如Reachability,一定一定要对

   这些类重命名,最常见的作法就是给类名加个前缀。以避免别人用你的库时,产生duplicate symbol的问题。

参考文献:http://blog.csdn.net/gaoyp/article/details/38707117?utm_source=tuicool&utm_medium=referral

转载于:https://www.cnblogs.com/Percy/p/5622452.html

你可能感兴趣的文章
sqlserver学习--1(登陆,时间函数,查看表结构,查看建表语句,IDENTITY() 函数,查询表名称,查询表结构)...
查看>>
MYSQL 日期函数
查看>>
Oracle触发器之替代触发器
查看>>
NodeJS基础教程之一
查看>>
你真的了解SDWebImage吗?
查看>>
BZOJ 1101 Luogu P3455 POI 2007 Zap (莫比乌斯反演+数论分块)
查看>>
C#嵌套类
查看>>
2017《面向对象程序设计》课程作业三
查看>>
[HDU] 1068 Girls and Boys(二分图最大匹配)
查看>>
ADO.NET类的模型关系图
查看>>
SRM 604 DIV2 250
查看>>
python中异常处理之esle,except,else
查看>>
看苹果官方API
查看>>
06-基础-系统指令-v-model-语法糖原理
查看>>
论文网站相关链接
查看>>
ipad4自动下载了ios8的安装包,好几个G啊,不想更新,怎么删了呢?
查看>>
JS中的Navigator 对象
查看>>
Android 开源控件与常用开发框架开发工具类
查看>>
记录一次网站打开卡--排故障过程
查看>>
第四章小结
查看>>