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

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

         这样的方法就是把第三方类库的全部源文件复制到项目中。直接把全部.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