J'utilise le framework Alamofire pour faire le fichier json du serveur de lecture et le télécharger. Je veux vérifier la date de dernière modification de JSON et laisser l'utilisateur décider de télécharger le contenu de JSON. Mais la fonction getLastModifiedDate retourne toujours nil. Je liste l'exemple de code ici.Comment retourner le résultat de réponse à la fonction avec Alamofire Swift 3
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")
}
}
}
Je suis débutant de Swift 3 et Progamming réseau, je google et ai vu le document Swift aucune idée de la façon de résoudre ce problème. Quelqu'un peut-il aider? Merci beaucoup.
les fermetures ont un type de retour nul. Vous ne pouvez pas revenir de la fermeture, utilisez plutôt le gestionnaire d'achèvement. –