iOS库的介绍以及如何使用CocoaPods管理库(2016最新版本)

原创 2016年05月31日 20:16:02

我们首先从操作系统的角度来讨论一下:如何将一个用户源程序变为一个可在内存中执行的程序?



这是一门令人蛋疼的课,幸好还有点卵用、


回答我们提出的问题:

1、 《编译》作用:将用户源代码编译成若干个目标模块。

2、《链接》作用:将目标模块和它们所需要的库函数链接起来,形成一个完整的装入模块。

3、《装入》作用:将装入模块装入内存。


我们这里主要说一下程序的链接,根据链接时间的不同,可把链接分成如下三种:

1、静态链接:在程序运行之前,先将各目标模块以及它们所需的库函数,链接成一个完整的装入模块,以后不再拆开。

2、装入时动态链接:在装入内存时,将(由编译得到的那若干个)目标模块,边装入边链接。

3、运行时动态链接:在程序运行到需要该模块时,才对它进行链接。


现在步入正题:


iOS中的库分为静态库和动态库
所谓静态库:链接(上述的静态链接)时完整地拷贝至可执行文件中,被多次使用就有多份拷贝。
所谓动态库:程序运行时(上述的运行时动态链接)由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用。

有三种形式:
.a是静态库,a是一个纯二进制文件,只能包含代码不能包含资源,

.dylib(现在都是.tbd,没有.dylib了)是动态库,只能包含代码不能包含资源,

.framework既可以是动态库也可以是静态库(系统的.framework是动态库,我们自己建立的.framework是静态库)
.framework中除了有二进制文件之外还可以有资源文件(例如图片、xib)

关于库的创建以及这些库的详细讨论就不在这里讨论了,下面我们来说一下如何使用CocoaPods来管理库:

我们使用库的时候可以手动导入,但这是一个令人蛋疼的问题,好在我们可以使用CocoaPods来管理库:
CocoaPods经过多年发展,现在已经成为iOS开发事实上的依赖管理标准工具。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。
下面简单介绍CocoaPods的使用:

1.开启终端

2.移除现有 Ruby 默认源(因为它被墙了)

$ gem sources --remove https://rubygems.org/

3.使用新的源

$ gem sources -a https://ruby.taobao.org/(但是由于某种原因,它不再被维护了)

所以改用它:gem source -a https://gems.ruby-china.org

4.验证新源是否替换成功,看看现在的源

$ gem sources -l

5.安装 CocoaPods

$ sudo gem install cocoa pods

初始化

$ pod setup

备注:苹果系统升级 OS X EL Capitan 后安装改为:

$ sudo gem install -n /usr/local/bin cocoapods

$ pod setup



以后使用就非常简单了:

1.新建 Podfile 文件

$ touch Podfile(这是一个空的Podfile)(建议用pod init,初始化的Podfile)

2.编辑 Podfile 文件,并写入要添加的第三方库

use_frameworks!  //以动态库引入,生成一个动态框架

inhibit_all_warning!//压制所有第三方库的警告

platform:ios, '8.0'//平台限制

pod 'AFNetworking', '~> 2.3.1'<-------第三方库

根据自己需要编辑

3.导入第三方库

$ pod install


然后打开.xcworkspace就可以运行惹,不过这样不会自动补齐,还要这样: 

 1.选择target—》 BuildSettings —》 search Paths 下的 User Header Search Paths:点击“+”号添加一项:并且输入:$(PODS_ROOT),选择:recursive  然后就可以了。












版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

iOS 静态库,动态库与 Framework

静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用。 什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我...

如何使用CocoaPods来管理库

iOS中的库分为静态库和动态库 所谓静态库:链接(上述的静态链接)时完整地拷贝至可执行文件中,被多次使用就有多份拷贝。 所谓动态库:程序运行时(上述的运行时动态链接)由系统动态加载到内存,供程序调...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

2016最新cocoapods版本更新,以及多个版本的问题

原文是:http://www.cnblogs.com/MJchen/p/6097278.html

CocoaPods版本升级2016最新版

升级 OS X El Capitan 后,Time Machine 恢复下,随后因为遇到 octopress 无法更新博客问题,一番折腾 octopress 适配了 OS X El Capitan,然...

使用CocoaPods管理iOS第三方库

使用CocoaPods管理iOS第三方库

使用cocoapods管理iOS第三方库

CocoaPods是类似于Maven一样的第三方库集成工具,它能快速地帮助我们在ios开发中寻找并集成第三方库,免去了我们手动的去搜索并下载到我们的工程中。 首先快速的安装CocoaPods...

使用CocoaPods管理iOS第三方库

CocoaPods是一个负责管理iOS项目中第三方开源代码的工具。CocoaPods对于iOS项目的作用和npm对于Nodejs项目的作用是一样的。 CocoaPods的安装( Mac下都自...

CocoaPods的安装与使用

CocoaPods是什么? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而...

iOS 最新版 CocoaPods 的安装流程

iOS 最新版 CocoaPods 的安装流程

最新 macOS Sierra 10.12.6 安装CocoaPods及使用详

cocoapods官网:https://guides.cocoapods.org 一、什么是CocoaPods 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)