一、概要
iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库。
二、安装
由于网上的教程基本都大同小异,但细节之处还不是很完善,所以借机会在这里补充下:
注:要使用CocoaPods,那就要下载安装它,而下载安装CocoaPods需要Ruby环境
1、Ruby环境搭建
当前安装环境为Mac mini 10.8.5。Mac OS本身自带Ruby,但还是更新一下保险,因为我第一次安装在没有更新Ruby的情况下就失败了。
a 查看下当前ruby版本:打开终端输入 ruby -v(确实安装了,不过用这个版本接下来工作失败了,所以更新下ruby)
b 更新ruby
终端输入如下命令(把Ruby镜像指向taobao,避免被墙,你懂得)
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l (用来检查使用替换镜像位置成功)
2、下载安装CocoaPods
终端输入:sudo gem install cocoa pods
这样就下载安装好了CocoaPods
3、使用CocoaPods
a 新建一个项目,名字MultipleSelectedCell
打开终端 cd 项目路径(eg:zhangxiaofandeiMac:~ wofuminshengkeji$ cd /Users/wofuminshengkeji/Desktop/MultipleSelectedCell )
b 建立Podfile(配置文件)
接着上一步,终端输入 vim Podfile
键盘输入 i,进入编辑模式,输入
低版本的cocoa pods在编写Podfile文件时这样写就可以了
platform :iOS, '8.0'
pod 'AFNetworking'
高版本的cocoa pods在编写Podfile文件必须这样写
platform :ios, '8.0'
target "targetName" do
pod 'AFNetworking'
end
然后按Esc,并且输入“ :”号进入vim命令模式,然后在冒号后边输入wq
注意:键盘输入 :后,才能输入wq。回车后发现PodTest项目总目录中多一个Podfile文件
c 确定终端cd到项目总目录,然后输入 pod install,等待一会,大约3分钟。
这样,新建的pod项目就完成了。以后再集成第三方开源库的时候直接 pod进来就可以使用了。
二 Pch文件配置
PCH文件(Precompile Prefix Header File),也就是预编译头文件,其作用就是,方便你一次性导入在多个文件中同时用到的头文件、宏或者URL地址等(全局使用),可以有效的帮你节约时间,提高开发效率。但是,自从Xcode 5之后,这个文件默认就不再提供了,如果你还想继续使用的话,需要手动创建并配置。至于为什么默认不再提供,可能是出于提高编译效率方面的考虑,毕竟预编译也会提高Build的时间。
依据上面的操作,项目的基础启动起来。接下来做一个头文件的配置,因为一个项目的运行肯定离不开共用类的使用。在头文件中导入我们需要的共用类,这样大大便利后期的开发效率
1.在项目目录下新建一个Common文件夹,用于添加常用类。创建pch文件.
2. 在工程的TARGETS里边Building Setting中搜索Prefix Header,然后把Precompile Prefix Header右边的NO改为Yes:
新建pch文件,然后在Precompile Prefix Header下边的Prefix Header右边双击,添加刚刚创建的pch文件的工程路径,添加格式:“$(SRCROOT)/项目名称/pch文件名” ,$(SRCROOT)的意思就是工程根目录的意思。(修改添加格式:Common/appconfigPrefix.pch)。
3.将Precompile Prefix Header为YES,预编译后的pch文件会被缓存起来,可以提高编译速度
这样就可以在pch内部进行宏定义,为所欲为。eg:(常用宏:
#define RGBA(r,g,b,a) [UIColor colorWithRed:r/255.0fgreen:g/255.0fblue:b/255.0falpha:a]
#define TopStatuHeight [[UIApplication sharedApplication] statusBarFrame].size.height
#define TabbarHeight ([[UIApplication sharedApplication] statusBarFrame].size.height>20?83:49)// 适配iPhone x 底栏高度
#define NavitionbarHeight ([[UIApplication sharedApplication] statusBarFrame].size.height>20?88:64)// 适配iPhone x 导航高度
#define BottomSafebarHeight ([[UIApplication sharedApplication] statusBarFrame].size.height>20?34:0)// 适配iPhone x 导航高度
#define ScreenWidth [[UIScreen mainScreen] bounds].size.width
#define ScreenHeight [[UIScreen mainScreen] bounds].size.height
)