-Objc
来源:互联网 发布:如何查到淘宝客佣金 编辑:程序博客网 时间:2024/04/29 05:48
这是我直接复制别人的, 所说还有的不太懂, 但是感觉很有用(原文地址:http://www.th7.cn/Program/IOS/201403/181096.shtml):
最近在做一个项目的时候,需要使用到一个第三方库,这个库的使用向导里面特别说明,在添加完该库后,需要在Xcode的Build Settings下Other Linker Flags里面加入-ObjC标志,这个标志以前没使用过,所以我就专门研究了一下它的作用。
之所以使用该标志,和Objective-C的一个重要特性:类别(category)有关。根据这里的解释,Unix的标准静态库实现和Objective-C的动态特性之间有一些冲突:Objective-C没有为每个函数(或者方法)定义链接符号,它只为每个类创建链接符号。这样当在一个静态库中使用类别来扩展已有类的时候,链接器不知道如何把类原有的方法和类别中的方法整合起来,就会导致你调用类别中的方法时,出现”selector not recognized”,也就是找不到方法定义的错误。为了解决这个问题,引入了-ObjC标志,它的作用就是将静态库中所有的和对象相关的文件都加载进来。
本来这样就可以解决问题了,不过在64位的Mac系统或者iOS系统下,链接器有一个bug,会导致只包含有类别的静态库无法使用-ObjC标志来加载文件。变通方法是使用-all_load 或者-force_load标志,它们的作用都是加载静态库中所有文件,不过all_load作用于所有的库,而-force_load后面必须要指定具体的文件。
明白了这些,我就清楚,这个第三方库中一定是定义了一些类别来扩着已有类,打开头文件,发现果然如此。
- -Objc
- -ObjC
- Objc
- objc
- ObjC websites
- objc 语法
- objc 全局
- 关于objc
- objc delegate
- 关于OBJC
- objc 复制
- ObjC Runtime
- Objc Runtime
- 什么是Objc
- @objc关键字
- Objc Runtime
- objc 中国
- objc runtime
- DrapQueryFile
- 友盟启动次数的统计原理是什么?
- 建议PM注意任务的延时分发
- 欢迎使用CSDN-markdown编辑器
- IXXAT的CANopen协议
- -Objc
- strust2拦截器--登陆
- 运动点电荷的电磁场(二)
- 关于Win7 64位下:Navicat无法连接64位Oracle 11gR2:Cannot load OCI DLL解决方法
- Apache Shiro 关于Shiro 授权
- 使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件(转)
- 子div不能撑开父div
- select*from在自定义函数(视图)中的特殊问题
- 指针和引用的小例子