由于xcode5以后基本都是在ARC的环境下开发, 但是避免不了使用一些老得MRC得第三方类库,在我们实际开发过程中, 当遇到非ARC和ARC的两个工程一期开发的时候, 一般有几种方式来处理
一. 通过xcode-Edit-Refactor-Convert to Objective-C ARC 将MRC的转换成ARC的. 但是这种情况往往不那么理想和实用. 我们只能祈祷它可以奏效
二. 通过TARGETS-Build Phases-Compile Sources将我们的所有MRC文件打上-fno-objc-arc的flags,对于MRC文件数量相对少得情况下可以使用该方法.但是当MRC文件的数量有几十甚至上百的时候, 这真的不应该是我们这样高逼格,高技术含量的人才干的活, 说这么多废话, 都是为了今天的猪脚做铺垫.
三.猪脚粗线:当当当当.....通过将我们引入的MRC的第三方类库打包成静态库,然后再引入工程, 我个人感觉逼格是比较高的.下面详细介绍下如何打包成静态库
1.新建一个静态库project(Frameword & Library-Cocoa Touch Static Library), 名字就取跟第三方一样的吧, 方便.
2.将第三方类库拖到我们的工程当中来, Add to targets中勾选第一个(静态库), 点Finish..可以把我们新建时默认创建的.h和.m干掉
3.这时我们command+B时肯定会报错的,因为xcode5以后创建出来的工程都是ARC模式的, 这时我们只需要将其改为MRC模式即可(TARGETS-Build Settings-搜索auto,找到Objective-C Automatic Reference Counting, 将其改为NO),下来Build Phases中点击+号增加New Copy Headers Build Phase,然后将该第三方中得所有.h文件都增加进去,并拖到public中,Supporting Files中的.pch文件中包含UIKit框架. 此时我们command+B 编译通过.这时我们的静态库也已经生成了(Products中可以找到该静态库文件)
4.将我们刚才的静态库工程中的头文件的文件夹(include)拖到工程中,再将我们刚才生成的静态库.a文件拖到工程中去.. OK大功告成
总结:其实也是用了封装的原理,外部只负责用,不用关心内部究竟是怎样的. 另外大家应该也学会了如何让别人看不到我们的源代码了吧..