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 Paths的User Header Search Paths參数中增加第三方类库的头文件路径。能够是绝对路径如:/Users/libpath,也能够是相对路径(相对于当前项目目录)如:../**。一般是设置为:” $(PROJECT_DIR)/usr “ (当中usr是项目下的自建的目录)。网上说有非常多拖.xcodeproj文件的,非常多网上的项目也有.xcodeproj,并且是红色的,笔者感觉有的.xcodeproj 下有非常多东西,全部引进来,太冗余了。不是必需。
注意:
1. 假设第三方类库封装了一些资源在.bundle文件中,那么.bundle文件须要和.xcodeproj一起拖到项目中。
2. 有些静态链接库引用进来可能还须要增加一些标记,在Targets – Build Settings – Linking的Other Linker Flags參数中增加:-Objc, –all_load这一类标记。
3. 当前项目和第三方类库同一时候使用了另外的一些第三方类库,这个时候还须要额外做一些处理才干成功编译:在引用的第三方类库的.xcodeproj项目
– Targets – Build Phases中的Compile Sources和Copy 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
相关文章:

gcc中-pthread和-lpthread的区别
用gcc编译使用了POSIX thread的程序时通常需要加额外的选项,以便使用thread-safe的库及头文件,一些老的书里说直接增加链接选项 -lpthread 就可以了,像这样: Shell代码 gcc -c x.c gcc x.o -ox -lpthread 而gcc手册里则指出应…

Java项目:精品养老院管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)
源码获取:博客首页 "资源" 里下载! 一、项目简述本系统功能包括:通知公告,老人管理,护工管理,问答管理等等功能。 二、项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX&am…

install python+twisted+mysqldb+django on mac
一. install python 1) check install or not 在mac终端输入命令:which python 即可查看python的路径 2)未安装时,手动下载安装包 地址:https://www.python.org/downloads/ 选择下载 Mac OS X 64-bit/32-bit installer 安装 二…

JVM优雅退出
在某个Java应用增加新功能,缩容机器,或者应用以及机器发生异常,通常会停止正在运行的应用,该应用通常正在运行着任务,如果停止应用的操作处理不当的话,很有可能会导致数据丢失,损坏,从而影响业务。所以在停止应用的时候,需要考虑如何安全优雅的退出。维护了所有已经注册的钩子,由于jvm本身没有提供好用的方法去移除已经注册的钩子,可以通过反射的方式调用。对于强制关闭的几种情况,会直接停止JVM进程,JVM不会调用已注册的。对于正常关闭、异常关闭的几种情况,JVM关闭前,都会调用已注册的。

网络名词--“环路”
环路一直是网络工程师以及网络运维人员头疼的事,如何防止环路的产生,如何快速找出环路的原因排除故障,是每一个网络从业人员必备的技能。这就要求我们对环路产生的原因了如指掌,本文主要对交换环路进行分析,从分类、形…

希腊字母表及读音
序号大写小写国际音标中文读音意义1Ααa:lf阿尔法角度;系数2Ββbet贝塔磁通系数;角度;系数3Γγga:m伽马电导系数(小写)4Δδdelt德尔塔变动;密度;屈光度5Εεep`silon伊普西龙对数之基数6Ζζzat截塔系数;方位角;阻抗;相对粘度;原子序数7Ηηeit艾塔磁滞系数;效率(小写)8Θθθit西塔温度;相位角9Ιιaiot约塔

loadrunner——win7+LR11配置
一、 安装vmware虚拟机 下载安装vmware15后,可使用密钥为:CG392-4PX5J-H816Z-HYZNG-PQRG2 二、 安装win7系统 2.1下载win7镜像文件 2.2 vmware中创建win7虚拟机 创建过程省略,一键式创建即可,windows产品可使用密钥如下࿱…

C++标准库中sstream和strstream的区别
在C有两种字符串流,一种在sstream中定义, 另一种在strstream中定义。 它们实现的东西基本一样。 strstream里包含 class strstreambuf; class istrstream; class ostrstream; class strstream; 它们是基于C类型字符串char*编写的 sstream中包含 class is…

基于jQuery垂直多级导航菜单代码
基于jQuery垂直多级导航菜单代码是一款黑色风格的jQuery竖直导航菜单特效下载。效果图如下: 在线预览 源码下载 实现的代码。 html代码: <ul class"ce"><li> <a class"xz" href"#">目录A</a>…

Java项目:在线考试系统(java+springBoot+vue+Mysql+maven)
源码获取:博客首页 "资源" 里下载! 管理员和教师登陆此账号就进入后台,学生登陆此账号就进入前端做题。 老师发布了考试,学生才可以在主页面看到相应的考试信息。 有考试安排表以后,才能给该次考试添加题目,对应数据表是exammanag…

来玩Play框架05 数据库
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 数据库是整个站点的数据储藏室。用户提交的数据可以存储在数据库中,以便未来使用。Play可以通过JDBC和数据库通信。我讲介绍Play和my…

mysql数据库之linux版本
http://repo.mysql.com/yum/mysql-5.6-community/ 安装 安装方式一(在线安装) # 查看和mysql…

LINUX UMASK详解
一 权限掩码umask umask是chmod配套的,总共为4位(gid/uid,属主,组权,其它用户的权限),不过通常用到的是后3个,例如你用chmod 755 file(此时这文件的权限是属主读(4)写(2)+执行(1),同…

ubuntu14.04安装hadoop2.6.0(伪分布模式)
版本:虚拟机下安装的ubuntu14.04(64位),hadoop-2.6.0 下面是hadoop2.6.0的官方英文教程: http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation hadoop下载…

Java项目:生活旅行分享平台(java+Springboot+JPA+Jsp+Html+js+Ajax+maven+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: Springboot SpringMVC JPA Jsp Htm…

Servlet和SpringMVC补课
1.web.xml加载顺序 http://mianhuaman.iteye.com/blog/1105522 关键点:ServletContext -> context-param -> listener -> filter -> servlet 2.beans xmlns http://www.w3school.com.cn/xml/xml_namespaces.asp 用于避免元素命名冲突。在Spring中应用极…

gdb debug
1. dir 添加源代码查找路径 一般工程的代码会有多路径,gdb会在当前目录下搜索符号对应的代码。利用dir <path> 可以添加代码搜索路径; 例如工程目录: ./ ./dir_1/ ./dir_2/ 可以用如下命令添加代码搜索路径: dir dir…

Java项目:嘟嘟图片展览馆管理系统(java+Springboot+SpringMVC+JPA+Jsp+maven+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: Springboot SpringMVC JPA Jsp Htm…

javascript编译与运行机理(1)--
随着学习js的深入就越想了解其内部的运行机理,看了很多文章,感觉下面总结的不错。但囿于个人水平,只是达到了理解层面,还不能提出自己的见解,只好把资料罗列出来,留待以后总结: 1、Javascript的…
Citrix Synergy 2014 重要信息快速一览
今天的互联网、社交媒体的确强大,我们可以足不出户了解到9600公里(北京到LA的距离)之外的美国发生的事情。今天从Brain Madden大神那儿又扒到了一些经过提炼的关于Citrix Synergy 2014(Citrix每年一度的大会)的会议内容…

stm32 flash和sram
FLASH是用来存储程序的,SRAM是用来存储程序运行中的中间变量转载于:https://www.cnblogs.com/CodeWorkerLiMing/p/10984065.html

常见主机字节序
常见主机字节序1. Little endian:将低序字节存储在起始地址2. Big endian:将高序字节存储在起始地址LE little-endian最符合人的 思维的字节序地址低位存储值的低位地址高位存储值的高位怎么讲是最符合人的思维的字节序࿰…

Java项目:仿小米电子产品售卖商城系统(java+SpringBoot+Vue+MySQL+Redis+ElementUI)
源码获取:博客首页 "资源" 里下载! 项目描述:这是一个基于SpringBootVue框架开发的仿小米电子产品售卖商城系统。首先,这是一个前后端分离的项目,代码简洁规范,注释说明详细。其次,这…

在js中使用createElement创建HTML对象和元素
1.创建链接 <script language"javascript"> var o document.body; //创建链接 function createA(url,text) { var a document.createElement("a"); a.href url; a.innerHTML text; a.style.color "red"; o.appendChild(a); …

Leetcode | 3Sum
Given an array S of n integers, are there elements a, b, c in S such that a b c 0? Find all unique triplets in the array which gives the sum of zero. Note:Elements in a triplet (a,b,c) must be in non-descending order. (ie, a ≤ b ≤ c)The solution set …

玩转 JavaScript 面试:何为函数式编程?
函数式编程在 JavaScript 领域着实已经成为一个热门话题。就在几年前,很多 JavaScript 程序员甚至都不知道啥是函数式编程,但是就在近三年里我看到过的每一个大型应用的代码库中都包含了函数式编程思想的大规模使用。 函数式编程(缩写为 FP)是一种通过组…

正则表达式分类 区别
原文地址:http://www.cnblogs.com/chengmo/archive/2010/10/10/1847287.html 正则表达式:在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用…

Java项目:嘟嘟校园一卡通系统(java+JSP+Servlet+html+css+JavaScript+JQuery+Ajax+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目简述 功能:卡管理,卡消费,卡充值,图书借阅,消费,记录,注销等等功能。 二、项目运行 环境配置: Jdk…

OC与C语言的区别
C语言是面向过程的编程语言,而OC则是面向对象的编程语言。面向对象:打个比方,就是你做一次菜,让老婆做个菜,吃饭,这就是面向对象,效率高面向过程,就是每一个细节:比如你要先把或开到合适的位置.然后还要洗菜 ,等油热了,才能开始炒菜,然后调料,...,起锅,到碗里,吃饭.…

Hutool之集合工具——CollectionUtil
为什么80%的码农都做不了架构师?>>> 集合工具 CollectionUtil 这个工具主要增加了对数组、集合类的操作。 1. join 方法 将集合转换为字符串,这个方法还是挺常用,是StrUtil.split的反方法。这个方法的参数支持各种类型对象的集合…