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

这是一门令人蛋疼的课,幸好还有点卵用、
回答我们提出的问题:
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 然后就可以了。
版权声明1:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/IOSAFei/article/details/51546340
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。