我正在使用Alamofire進行網絡請求。當我加載一個新的viewcontroller時,我在ViewDidAppear中創建了一個新的請求來獲取圖片等的示例url。當我在ViewDidAppear中提出請求時,在數據出現之前會有一段延遲,我也在ViewDidLoad中嘗試了一下,請求速度稍微快了一點,但是您可以稍後看到數據出現。當用戶首次訪問視圖控制器時,用戶將看到數據正在加載,但是有沒有辦法保留這些數據,以便當用戶離開控制器時,例如當用戶從推回去時在導航控制器中,然後再次向前導航而不再請求重新獲取數據?如何在Swift中更快地發出網絡請求
這是我在ViewDidAppear請求的一個:希望你們能幫助 - 謝謝你
override func viewDidAppear(animated: Bool) {
navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil)
var parameters = [String: AnyObject]()
if(self.MySelf)
{
parameters = ["userId": LoginViewController.CurrentUser.UserID as AnyObject]
}
else
{
parameters = ["userId": self.UserID as AnyObject]
}
//GET posts
Alamofire.request(.POST, Config.ApiURL + "getUserPosts?token=" + LoginViewController.CurrentUser.Token, parameters: parameters as! [String : AnyObject]).responseJSON{ response in
print(response)
switch response.result {
case .Success(let data):
let json = JSON(data)
if let posts = json["post"]["data"].array
{
self.postArray = posts
self.postArray = self.postArray.reverse()
self.navigationItem.title = json["user"]["firstname"].string! + " " + json["user"]["lastname"].string!
self.User = json["user"]
self.UserPic = self.User["photourl"].string!
}
else
{
print("Array is empty")
}
case .Failure(let error):
print("Request failed with error: \(error)")
}
self.ProfilePostColView?.reloadData()
}
}