如何使用 Alamofire Swift 3 将响应结果返回到函数

史蒂芬谭

我使用 Alamofire 框架来读取服务器 json 文件并下载它。我想检查 json 上次修改日期并让用户决定下载 json 内容。但是函数 getLastModifiedDate 总是返回 nil。我在这里列出了示例代码。

import Foundation
import UIKit
import Alamofire

class ViewController: UIViewController {

    @IBOutlet var lastModifedDateLabel: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        if (getLastModifiedDate() != nil) {
            let alertController = UIAlertController(title: "Information", message: "Download or NOT", preferredStyle: UIAlertControllerStyle.alert)
            alertController.addAction(UIAlertAction(title: "NO", style: .cancel, handler: nil))
            alertController.addAction(UIAlertAction(title: "YES", style: .default, handler: {action in
                self.callDownload()
            }))
            self.present(alertController, animated: true, completion: nil)
        }
    }

    func getLastModifiedDate() -> String? {

        var date:String?

        Alamofire.request("http://www.example.com/apps/demopad/manifest.json")
            .response { serverResponse in
                date = serverResponse.response?.allHeaderFields["Last-Modified"] as? String
                print(date ?? "Server date is nil")
                self.lastModifedDateLabel.text = date
        }
        return date
    }

    func callDownload() {

        print("Call Download func")

        Alamofire.request("http://www.example.com/apps/demopad/manifest.json")
            .responseJSON { serverRespone in
                let jsonDict = serverRespone.result.value as? Dictionary<String, Any>
                print(jsonDict ?? "JSON data is nil")
        }
    }

}

运行结果

我是 Swift 3 和网络编程的初学者,我 google 并看到 Swift 文档不知道如何解决这个问题。任何人都可以提供帮助吗?非常感谢你。

阿迪亚·斯里瓦斯塔瓦

您没有使用闭包,这就是getLastModifiedDate返回 nil 的原因,因为它没有返回"Last-Modified"value 。如果您正在执行这样的异步任务,则必须使用闭包

func getLastModifiedDate(completion: @escaping (String) -> ()) {

    var date:String?

    Alamofire.request("http://www.example.com/apps/demopad/manifest.json")
        .response { serverResponse in
            date = serverResponse.response?.allHeaderFields["Last-Modified"] as? String
            print(date ?? "Server date is nil")
            self.lastModifedDateLabel.text = date
          completion(date)

    }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 Swift 3 和 Alamofire 上传文件

来自分类Dev

在Swift中使用Alamofire解析JSON响应

来自分类Dev

在Swift中使用Alamofire解析JSON响应

来自分类Dev

在Swift中使用Alamofire处理JSON响应

来自分类Dev

在Swift中使用Alamofire时如何获取响应标头?

来自分类Dev

如何在iOS Swift中使用Alamofire获得JSON响应?

来自分类Dev

如何使用 Alamofire Swift 4 将图像填充到 UICollectionView

来自分类Dev

Swift 2-使用Alamofire时函数不返回Bool

来自分类Dev

如何在 Alamofire 请求 swift 3 中传递 JSON 对象

来自分类Dev

使用Alamofire在Swift 3中进行Json解析

来自分类Dev

使用 Alamofire 4 在 Swift 3 中将照片上传到 Django?

来自分类Dev

使用未解析的标识符 'json' (Swift 3) (Alamofire)

来自分类Dev

尝试使用 Alamofire 在 Swift 3 中解析 JSON

来自分类Dev

Alamofire JSON请求Swift 3

来自分类Dev

在Swift 3的每一步中,如何使用Alamofire执行顺序请求并更新progressHUD

来自分类Dev

使用 Alamofire - Swift 3 上传对象时如何捕获错误?

来自分类Dev

从Swift 3迁移Alamofire swift2

来自分类Dev

Swift:如何使用库:Alamofire-SwiftyJSON

来自分类Dev

如何在iOS Swift 4中处理Alamofire响应?

来自分类Dev

如何在iOS,Swift3,Alamofire 4中使用多部分表单数据将图像作为参数上传以及其他参数

来自分类Dev

在Swift中使用JSON使用Alamofire请求后,如何在AnyObject中转换<AnyObject>响应?

来自分类Dev

将 Swift ios 网络转换为使用 Alamofire

来自分类Dev

将通用函数从 Alamofire 3 迁移到 Alamofire 4

来自分类Dev

如何在没有AlamoFire的情况下在Swift 3中同时发出异步HTTP请求

来自分类Dev

Swift 3:如何在 ALamofire 4 的请求正文中添加或删除参数?

来自分类Dev

使用Swift 3和Alamofire在JSON网址中未显示任何应用程序

来自分类Dev

无法使用Swift3 Alamofire(4.3.0),EVReflection(4.2.0)解析XML-与键值编码不兼容

来自分类Dev

如何将所有响应从API返回到我的Swift应用

来自分类Dev

如何使用Alamofire读取响应Cookie

Related 相关文章

  1. 1

    使用 Swift 3 和 Alamofire 上传文件

  2. 2

    在Swift中使用Alamofire解析JSON响应

  3. 3

    在Swift中使用Alamofire解析JSON响应

  4. 4

    在Swift中使用Alamofire处理JSON响应

  5. 5

    在Swift中使用Alamofire时如何获取响应标头?

  6. 6

    如何在iOS Swift中使用Alamofire获得JSON响应?

  7. 7

    如何使用 Alamofire Swift 4 将图像填充到 UICollectionView

  8. 8

    Swift 2-使用Alamofire时函数不返回Bool

  9. 9

    如何在 Alamofire 请求 swift 3 中传递 JSON 对象

  10. 10

    使用Alamofire在Swift 3中进行Json解析

  11. 11

    使用 Alamofire 4 在 Swift 3 中将照片上传到 Django?

  12. 12

    使用未解析的标识符 'json' (Swift 3) (Alamofire)

  13. 13

    尝试使用 Alamofire 在 Swift 3 中解析 JSON

  14. 14

    Alamofire JSON请求Swift 3

  15. 15

    在Swift 3的每一步中,如何使用Alamofire执行顺序请求并更新progressHUD

  16. 16

    使用 Alamofire - Swift 3 上传对象时如何捕获错误?

  17. 17

    从Swift 3迁移Alamofire swift2

  18. 18

    Swift:如何使用库:Alamofire-SwiftyJSON

  19. 19

    如何在iOS Swift 4中处理Alamofire响应?

  20. 20

    如何在iOS,Swift3,Alamofire 4中使用多部分表单数据将图像作为参数上传以及其他参数

  21. 21

    在Swift中使用JSON使用Alamofire请求后,如何在AnyObject中转换<AnyObject>响应?

  22. 22

    将 Swift ios 网络转换为使用 Alamofire

  23. 23

    将通用函数从 Alamofire 3 迁移到 Alamofire 4

  24. 24

    如何在没有AlamoFire的情况下在Swift 3中同时发出异步HTTP请求

  25. 25

    Swift 3:如何在 ALamofire 4 的请求正文中添加或删除参数?

  26. 26

    使用Swift 3和Alamofire在JSON网址中未显示任何应用程序

  27. 27

    无法使用Swift3 Alamofire(4.3.0),EVReflection(4.2.0)解析XML-与键值编码不兼容

  28. 28

    如何将所有响应从API返回到我的Swift应用

  29. 29

    如何使用Alamofire读取响应Cookie

热门标签

归档