支持 swift 3.0 和 iOS 8.0+ 的等效 Alamofire 库

Posted

技术标签:

【中文标题】支持 swift 3.0 和 iOS 8.0+ 的等效 Alamofire 库【英文标题】:Equivalent Alamofire libraries supporting swift 3.0 and iOS 8.0+ 【发布时间】:2016-11-15 09:50:05 【问题描述】:

我在我的应用程序中使用 Xcode 8 和 swift 3.0,它们必须在 ios 8.0 和 + 中运行。虽然 Alamofire 4.0 不支持 iOS 8.0,但是否有任何其他库管理网络,如 Alamofire,但支持 Xcode 8.0、swift 3.0 和 iOS 8.0 作为最小部署目标?

【问题讨论】:

【参考方案1】:

对于大多数请求,URLSession 已经足够了,我认为没有理由再在 iOS 中使用任何库进行网络连接了。

我们有一个从 Alamofire 开始并移植到 Swift 3 的项目,因此它仍然使用相同的请求生成过程。然后使用以下命令替换对 Alamofire 的调用:

let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration, delegate: nil, delegateQueue: OperationQueue.main)

let task = session.dataTask(with: request.urlRequest)  data, response, error in
// Process response


task.resume()

【讨论】:

一切都按要求进行,这里无事可做。应该已经为 Alamofire 创建了请求生成,因此您可以重复使用它。否则 request.httpMethod = "POST" 将是设置方法的最原始方式。【参考方案2】:

Alamofire 4.0 使用自 9.0 以来 iOS 中的流委托,因此您不能在 iOS 8.0 中使用 swift 3.0 和 alofire 4.0,唯一的方法是:

如果您希望在面向 iOS 8 的同时使用 Xcode 8 和 Alamofire,请使用 Alamofire 3.5.0 和 Swift 2.3。 (官方回答)

https://github.com/tonyli508/AlamofireDomain(一个自定义的 alamofire 做你想做的事)

【讨论】:

您能告诉我要在 pod 文件中添加什么吗? (pod 'AlamofireDomain', '~> 4.0'?) 所以你应该这样写: pod 'AlamofireDomain', :git => "github.com/tonyli508/AlamofireDomain"

以上是关于支持 swift 3.0 和 iOS 8.0+ 的等效 Alamofire 库的主要内容,如果未能解决你的问题,请参考以下文章

Swift 3.0 使用Core Data

自定义幻灯片 Segue - Xcode 8.0 Swift 3.0

在 Xcode 8.0 Swift 3.0 上检测手势

打印可变展开 Segue - Xcode 8.0 Swift 3.0

准备使用数组进行 Segue - Xcode 8.0 Swift 3.0

Xcode 8.0 新特性 & Swift 3.0 增加的变动