支持 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 库的主要内容,如果未能解决你的问题,请参考以下文章
自定义幻灯片 Segue - Xcode 8.0 Swift 3.0
打印可变展开 Segue - Xcode 8.0 Swift 3.0