有时候使用第三方库的时候,需要在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后面必须要指定具体的文件。

本文转载自:http://www.th7.cn/Program/IOS/201403/181096.shtml

Xcode中的-ObjC和-all_load相关推荐

  1. Xcode中Objc动态调用方法同时避免警告的几个办法

    我们在Xcode中使用objc写代码的时候往往会碰到动态调用方法的时候. 如果是静态调用这很常见,不会有任何问题: [self performSelector:@selector(method)]; ...

  2. (转载)Xcode中other linker flags的作用

    原文地址: https://blog.csdn.net/iosfengguibin/article/details/52086435 今天导入三方的sdk之后,空项目,总是报错"select ...

  3. Xcode中导入.a静态库后报错添加-force_load或-all_load

    第一种方法: 以前在做项目的时候在Xcode中倒入一个三方SDK的时候,会有一些.a的静态库,这时候如果直接编译运行就会报错.当时只知道往build settings的linker flags 里面添 ...

  4. -Objc 、 -all_load 、 -force_load

    标志 -Objc . -all_load . -force_load 笔记. 有时候经常会遇到在导入第三方库的时候需要在 Other Linker Flags 中添加 -Objc 标志.-all_lo ...

  5. 在 Xcode 中进行自动化测试 (2/2)

    欢迎回到我们的 Xcode 自动化测试入门系列! 在教程的第一部分, 你学到了如何将你的代码提交到 Git 上, 设置一个 Jenkins 持续集成服务器, 还有如何为你的应用添加单元测试. 在第二部 ...

  6. 在 Xcode 中进行自动化测试 (1/2)

    这是 iOS 教程团队成员 Charlie Fulton 的一篇博客, 一个全职的 iOS 开发者, 喜欢和家人一起打猎, 钓鱼. 所有的开发者都需要测试他们的软件, 并且一些聪明人会创建测试套件来达 ...

  7. Xcode中如何解决无法使用svn命令行的问题

    今天在自己机器上安装了xp虚拟机,然后在xp虚拟机上安装了svn的服务器.发现原本Xcode5以后就自带的svn竟然在终端无法使用命令行,出现了以下的错误: xcrun: error: active ...

  8. 在Xcode中使用Git进行源码版本控制

      本文翻译自Understanding Git Source Control in Xcode (译者myShire)欢迎您加入我们的翻译小组. 在应用程序开发过程中,很重要的一部分工作就是如何进行 ...

  9. 《深入浅出iPhone/iPad开发(第2版)》——在Xcode中建立你的界面

    本节书摘来自异步社区<深入浅出iPhone/iPad开发(第2版)>一书中的在Xcode中建立你的界面,作者 [美]Dan Pilone , Tracey Pilone,更多章节内容可以访 ...

最新文章

  1. 爬虫scrapy框架中间件的使用
  2. Win8 Metro(C#)数字图像处理--2.69中点滤波器
  3. React状态管理大乱斗,横向对比Dva,Rematch,Mirror
  4. ACM入门之【树状数组习题】
  5. [攻防世界 pwn]——pwn1(内涵peak小知识)
  6. [引]Windows Server 2003 : 网络负载平衡
  7. Sitemesh3的使用及配置
  8. 复习Java_List_Set_HashSet原理_Collections使用_Comparator使用
  9. Matlab--Figure界面工具栏使用简要说明
  10. linux 没有 分区表,在Windows下分区,安装linux,分区软件肿么没有linux swap 这个选项?...
  11. 语音识别——触发字检测
  12. 《Cisco安全防火墙服务模块(FWSM)解决方案》——2.7 软件架构
  13. machine learning-mnist
  14. nachos java_Nachos java版学习(一)
  15. 阮一峰访谈问题有奖征集
  16. 国家集训队论文集题目
  17. 基于网络爬虫的负面信息搜集系统
  18. 直播程序源码功能技术详解
  19. 愚人节这天,我辞职了
  20. 简易DDS信号发生器记录

热门文章

  1. C++ 类设计核查表
  2. linux下的idea的界面问题,错位以及各种...
  3. JavaScript中的内置对象-8--4.date对象中-获取,设置日期时间的方法; 获取,设置年月日时分秒及星期的方法;...
  4. javascript如何处理很多数据,类似分页切换
  5. 常见浏览器兼容性问题及解决方案
  6. WAMP PHP开发环境
  7. CollapsiblePanel控件
  8. InfoPath中的Rich Text Box中如何加“回车”
  9. LeetCode 1480 一维数组的动态和
  10. 7-1 公路村村通 (30 分)