Swift 的 AFNetwork [关闭]

Posted

技术标签:

【中文标题】Swift 的 AFNetwork [关闭]【英文标题】:AFNetwork For Swift [closed] 【发布时间】:2015-10-05 07:09:05 【问题描述】:

我正在从 Objective-C 切换到 Swift。在 Objective-C 中,我使用了AFNetworking for Client-Server communication (NSURLConnection)。我google了一下,参考了一些博客进行网络交流,找到以下链接供参考。

    https://github.com/AFNetworking/AFNetworking https://github.com/Alamofire/Alamofire

我从 GitHub 链接下载了 zip 文件。但是,两者都是用 Objective-C 编写的。谁能帮我在 Swift 中使用 AFNetworking? 寻求您的帮助。谢谢。

【问题讨论】:

如果您使用 CocoaPods 进行依赖管理,那么只需在 Swift 源代码中添加 pod 'Alamofire'Podfileimport Alamofire 并使用它。 @AshishKakkad 您可以完美地使用 AFNetwork 并快速引入标题。但是 Alamofire 速度很快,因此是首选。 【参考方案1】:

您必须将 AFNetworking 添加到您的 swift 项目中

在构建设置中 -> 定义模块设置为是

在 Build Settings -> Swift 编译器 -> Objective-C 桥接文件中设置桥接文件‘bridge.h’的名称

例如在 bridge.h 中写入:

#import "AFNetworking.h"

请参阅本教程以创建 bridging-Header

有关如何使用AFNetWork 的其他HTTP 方法,请参阅此tutorial

【讨论】:

是基于开发者的偏好,我们如何强制开发者使用,我们可以建议纠正我的朋友 是的,你是对的 :)【参考方案2】:

AFNetworking 是用 Objective-C 编写的,但您可以在 Swift 项目中使用它。我唯一需要注意的是,它有两个提供类似功能的并行实现,AFHTTPRequestOperationManager 基于NSURLConnectionAFHTTPSessionManager,基于NSURLSession。问题是 NSURLConnection 现在已弃用,因此如果您使用 AFNetworking,请使用 AFHTTPSessionManager

说了这么多,对于 Swift 项目,你真的应该继续使用 Alamofire,它是由同一作者编写的,但是是用 Swift 编写的,而不是 Objective-C。

【讨论】:

以上是关于Swift 的 AFNetwork [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

AFNetwork 作用和用法详解

Swift3.0封装 AFN 的 GET&POST网络请求

swift4.0 对 afn 进行二次封装

Swift中利用AFN获取当前网络状态

我是不是需要将 Alamofire 请求打包成 AFNetwork 之类的东西?

AFNetwork,我有些困惑