方法一:直接复制全部源文件到项目中

这样的方法就是把第三方类库的全部源文件复制到项目中。直接把全部.h和.m文件拖到XCode项目中就可以。

注意:

1. 假设第三方类库引用了一些系统自带类库。那么在项目中还须要额外引用那些类库。

2. 假设当前的项目启用了ARC。而引用的第三方类库未使用ARC,那还须要在项目信息的Targets – Build Parses

里找到第三方类库的.m文件,并为它们加上-fno-objc-arc标记。

3. 对于在未启用ARC的项目用引用使用了ARC的第三方类库,则须要为第三方类库的.m文件加上-fobjc-arc标记。

另外,在源码中能够通过一个编译器指令__has_feature(objc_arc)来检測项目是否使用了ARC。

具体见http://clang.llvm.org/docs/LanguageExtensions.html#langext-has-feature-has-extension。

方法二:引用.xcodeproj生成静态链接库并引用

首先,将要引用的静态库及头文件复制到该项目的文件路径下。然后,在项目的Targets – Summary – Linked Frameworks and Libraries或者在Targets – Build Phases – Link Binary With Libraries增加第三方类库生成的静态链接库引用。接着,还须要在Targets – Build Settings – Search PathsUser Header Search Paths參数中增加第三方类库的头文件路径。能够是绝对路径如:/Users/libpath,也能够是相对路径(相对于当前项目目录)如:../**。一般是设置为:” $(PROJECT_DIR)/usr “ (当中usr是项目下的自建的目录)。网上说有非常多拖.xcodeproj文件的,非常多网上的项目也有.xcodeproj,并且是红色的,笔者感觉有的.xcodeproj 下有非常多东西,全部引进来,太冗余了。不是必需。

注意:

1. 假设第三方类库封装了一些资源在.bundle文件中,那么.bundle文件须要和.xcodeproj一起拖到项目中。

2. 有些静态链接库引用进来可能还须要增加一些标记,在Targets – Build Settings – LinkingOther Linker Flags參数中增加:-Objc–all_load这一类标记。

3. 当前项目和第三方类库同一时候使用了另外的一些第三方类库,这个时候还须要额外做一些处理才干成功编译:在引用的第三方类库的.xcodeproj项目

              – Targets – Build Phases中的Compile SourcesCopy Headers把反复的.m和.h文件移除掉。

4. 第三方类库引用的一些系统自带类库。假设项目中没有引用,也可能会引起编译错误,这时还须要在项目中引用第三方类库引用的一些系统自带类库。

比方:第三方类库引用了QuartzCore.framework,而项目中未引用QuartzCore.framework则可能引起编译错误,就须要在项目中也引用QuartzCore.framework。

方法三:借助Cocoapods 管理第三方

当你开发iOS应用时,会经常使用到非常多第三方开源类库。比方JSONKit,AFNetWorking等等。可能某个类库又用到其它类库,所以要使用它。必须得另外下载其它类库,而其它类库又用到其它类库,“子子孙孙无穷尽也”,这或许是比較特殊的情况。总之小编的意思就是。手动一个个去下载所需类库十分麻烦。

第二种常见情况是,你项目中用到的类库有更新,你必须得又一次下载新版本号,又一次增加到项目中。十分麻烦。

假设能有什么工具能解决这些恼人的问题。那将“善莫大焉”。所以,你须要 CocoaPods。

CocoaPods应该是iOS最经常使用最有名的类库管理工具了。上述两个烦人的问题。通过cocoaPods。仅仅须要一行命令就能够全然解决,当然前提是你必须正确设置它。

重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,作为iOS程序猿的我们,掌握CocoaPods的使用是不可缺少的基本技能了。

cocoapods的具体使用见:

http://code4app.com/article/cocoapods-install-usage

内容參考链接:

http://mobile.51cto.com/iphone-407056.htm

转载于:https://www.cnblogs.com/mqxnongmin/p/10971663.html

IOS 编程中引用第三方的方类库的方法及常见问题相关推荐

  1. Vue 中引用第三方js总结

    vue中引用第三方js总结 By:授客 QQ:1033553122 实践环境 win10 Vue 2.9.6 本文以引用jsmind为例,讲解怎么在vue中引用第三方js类库 基础示例 1.把下载好的 ...

  2. Android Studio 在项目中引用第三方jar包

    在Android Studio项目中引用第三方jar包的方法: 步骤: 1.在build.gradle文件中添加如下代码: 备注:要添加在Android作用域下 sourceSets {main {j ...

  3. C#中引用第三方ocx控件引发的问题以及解决办法

    C#中引用第三方ocx控件引发的问题以及解决办法 参考文章: (1)C#中引用第三方ocx控件引发的问题以及解决办法 (2)https://www.cnblogs.com/XuPengLB/p/759 ...

  4. iOS开发中解决第三方静态库符号冲突的终极方案

    iOS开发中解决第三方静态库符号冲突的终极方案 背景 在iOS开发的时候,经常会使用各种第三方静态库,这些库内部可能会打包了相同的第三方库.那么在链接的时候就会发生符号冲突. 例如:A厂商提供的lib ...

  5. Android NDK编译中在libs\armeabi中加入第三方so库文件的方法

    Android NDK编译中在libs\armeabi中加入第三方so库文件的方法 假设要加入库文件的名字为libffmpeg.so文件 1.要在project\jni目录下新建一目录prebuilt ...

  6. python中的main函数可以被其他文件调用么_Python中在脚本中引用其他文件函数的实现方法...

    在导入文件的时候,Python只搜索当前脚本所在的目录,加载(entry-point)入口脚本运行目录和sys.path中包含的路径例如包的安装地址.所以如果要在当前脚本引用其他文件,除了将文件放在和 ...

  7. vue中引用tinymce图标不显示解决方法

    vue中引用tinymce图标不显示解决方法 通过官网查到一篇博客,按照上面步骤可以实现tinymce富文本编辑器的封装和使用. https://www.cnblogs.com/zhongchao66 ...

  8. 图形编程中,旋转的三种表示方法

    图形编程中,旋转的三种表示方法分别是:矩阵.欧拉角和四元数. 本文总结这三种表示方法的特点: 性质 矩阵 欧拉角 四元数 在坐标系间转换 能 不能 不能 连续或增量旋转 能,但是转换速度慢 不能 能, ...

  9. 软件项目中引用头文件的几种方法及要点

    关注+星标公众号,不错过精彩内容 作者 | strongerHuang 微信公众号 | 嵌入式专栏 好的编程习惯,会直接影响代码的质量,在嵌入式C/C++中,头文件的引用方式和方法有多种,同时一些细节 ...

最新文章

  1. 利用OpenCV进行边缘检测
  2. Interview:算法岗位面试—10.23下午—上海某科技公司算法岗位(偏机器学习算法,上市)技术面试之比赛积累、项目经验、个人未来发展
  3. unity3d-知识汇总
  4. 【不会吧不会吧,不会有人真的三分钟入门Python了吧?】Python编程基础
  5. centos7防火墙操作
  6. 把握linux内核设计思想(十二):内存管理之slab分配器
  7. JMX的Hello World
  8. 封装 axios 请求
  9. 一步步编写操作系统 79 在c代码中内联汇编
  10. linux后台开发具备能力集锦
  11. 全国Python科研应用专题实操培训班
  12. Android中的PopUpWindow
  13. Eclipse Photon即将发布
  14. 【solr基础教程之中的一个】Solr相关知识点串讲
  15. 【TCP/IP】【测试】常用抓包软件一览
  16. 大学计算机考试必备,大学计算机基础大一考试必备题库
  17. AD15使用出现的小问题
  18. 目标群体是什么意思_什么是目标客户群体?求解
  19. python微博相册爬虫
  20. 淘宝补单发货地不一样可以吗?正确补单流程是什么?

热门文章

  1. My deep learning reading list
  2. 三层交换机vlan间访问(第一种方式)
  3. NOI2011 道路修建
  4. SAP HR模块配置假期日历和缺勤类型
  5. php 所有魔术方法,PHP常用的魔术方法及规则
  6. bitcoinj开发环境搭建
  7. Python数据分析学习文章归纳
  8. 捍卫者usb管理控制系统_捍卫超模块化JavaScript
  9. <软件过程与改进>计算大题考点总结与例题
  10. STARTUP报错:ORA-00205: error in identifying control file, check alert log for more info