Swift 工程下导入 AFNetworking 框架
先手动导入的方法,cocoapods导入的方法也有介绍,在后面。
手动导入的方法
-
Github里面down下来AFNetworking的压缩包,解压缩然后将里面的AFNetworking和UIKit+AFNetworking这两个文件夹直接拖进去要用的那个工程里面去。
-
在Build Phrases下的Compile Sources添加所有导入的.m文件。我在实际操作中没做到这步,因为我把文件夹拖进去之后,貌似Xcode就帮忙把这步做好了。
-
同样在Build Phrases下的 Link Binary With Libraries 添加MobileCoreServices.framework、Security.framework、SystemConfiguration.framework这三个文件。
-
创建"工程名-Bridging-Header.h"的文件,因为是在Swift工程中用到OC的代码,所以要进行这个桥接的工作。在这个文件里面用#import "xx.h"这样来包含我们刚刚放进来那些文件的头文件,所有都要。
-
写好这个桥接头文件之后,在工程的 Build Setting 条目下的 Swift Compiler - General 中配置 Objective-C Bridging Header 写好是刚刚那个"工程名-Bridging-Header.h",把这个名字填上去。(如果你的项目还要在OC的文件下调用Swift的方法的话,还要在Objective-C Generated Interface Header Name 里配置成"工程名-Swift.h",这个"ProjectName-Swift.h"由系统生成,你也可以用command+鼠标单击来进入那个文件来看里面什么样子)
然后就可以在Swift的代码中使用AFNetworking里面的东西了。在Swift的文件下不用再去import什么的。
cocoapods的导入方法
-
安装cocoapods,这个过程本身我遇到了很多问题。在这篇文章里没办法再展开。身边小伙伴表示很顺利,很简单,没有遇到我遇到的很多问题(苦笑不得)。
-
安装好之后,在你的工程的文件夹里面用vim新建一个Podfile。填入
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
target ‘YourProjectName’ do
pod 'AFNetworking', '~> 3.0'
end
这里的内容比官方的github上面给出的,多了的就是第3行的"use_frameworks!",另外注意的一点是工程文件夹指的是有"YourProjectName.xcodeproj",有这个文件的文件夹。然后再提一下vim的保存退出就是先按Esc键,然后输入":wq"命令来保存退出。
需要注意的一点是:swift和OC中有一点不同,在swift中配置Podfile文件时要加上 use_framework! ,作用是把三方库打包成静态库。
-
在终端中进入刚刚那个文件目录下,调用"pod install"命令。有installation complete!就可能是成功了。(之前就一直有问题卡在这里了)
-
然后打开"YourProjectName.xcworkspace",注意不是"YourProjectName.xcodeproj"文件。然后如果成功的话,里面应该是能够看到两个蓝色的项目那样的东西,一个是你原来的项目,另外一个叫Pods,然后里面是装好的AFNetworking。
-
在使用上和手动的方法也不太一样。不过同样地,我们需要一个桥连接头文件。有一个比较简单的让系统帮你形成这个文件并同时配置好编译设置的方法就是:在你的工程中新建一个.m文件,然后Xcode会提醒你是否要添加桥连接头文件,你点是的话,就能帮你新建并配置好了。
-
在这个头文件里面只需要import "AFNetworking.h",不过在swift文件中不会有提醒。
-
关键,在项目的General设置选项下,添加AFNetworking框架。要是没出现的话,试试重新打开工程试试。(我之前卡这里了。第二天莫名就可以了。不知道是不是重启的作用。之前不行,是这一步根本没显示有AFNetworking这个framework)
对比
手动导入的方式支持代码提示。
cocoaPods方法代码提示的相关链接
解决办法: 选择Target -> Build Settings 菜单,找到\”User Header Search Paths\”设置项,新增一个值"${SRCROOT}",并且选择\”Recursive\”