私はBussiness Manager &をダウンロードマネージャを使用してWebサービスからデータを取得します。アプリケーションがデバイスに再インストールされるまで、アプリケーション全体でデータは更新されません。私もviewDidAppearメソッドを使用しますが、それも動作しません。これは、事前にあなたの経験の.Thanksシェアで私を助けてください、私に深刻な問題であるApp(Swift)を再インストールするとデータが更新されます
商務マネージャー方法
class func addNewAddressToProfile(_ values:String , completionHandler:@escaping (_ result:NSDictionary)->())
{
DispatchQueue.global(qos: DispatchQoS.QoSClass.userInitiated).async {
let result = DownloadManager.downloadDataFromServer(NSString(format:"%@", values) as String, urlString: "https://abc.php") as NSDictionary
DispatchQueue.main.async {
completionHandler(result)
}
}
}
class func getProfileInformation(_ userID:String , completionHandler:@escaping (_ result:NSDictionary)->())
{
DispatchQueue.global(qos: DispatchQoS.QoSClass.userInitiated).async {
let url = NSString(format: "https://www.zabrabox.com/api.php?rquest=get_customer_address&customer_id=%@",userID)
let result = DownloadManager.downloadDataFromServerGetMethod(url as String) as NSDictionary
DispatchQueue.main.async {
completionHandler(result)
}
}
}
ダウンロードマネージャ方法
class func downloadDataFromServer(_ parameter:String , urlString: String) ->NSDictionary
{
let urlRequest = NSMutableURLRequest()
urlRequest.url = URL(string: urlString)
urlRequest.setValue("application/json; charset=utf-8", forHTTPHeaderField:"Content-Disposition")
urlRequest.httpMethod = "POST"
let data = (parameter as NSString).data(using: String.Encoding.utf8.rawValue)
urlRequest.httpBody = data
var Error:NSError? = nil
var returnData: Data?
do {
returnData = try NSURLConnection.sendSynchronousRequest(urlRequest as URLRequest, returning: nil)
} catch let error as NSError {
Error = error
returnData = nil
}
if(Error == nil)
{
return self.validateResponds(returnData!)
}
let errorResult:NSDictionary = [
"status" : "401",
"message" : "Error message"
]
return errorResult
}
彼女は私のviewDidAppear方法である
override func viewDidAppear(_ animated: Bool) {
let data = UserDefaults.standard.object(forKey: kUserDetails) as! Data
let userDic = NSKeyedUnarchiver.unarchiveObject(with: data) as! NSDictionary
userIDStr = userDic.value(forKey: "customer_id") as! String
print(userIDStr)
BusinessManager.getProfileInformation(userIDStr, completionHandler: { (result) ->() in
print(result)
// print(self.addressAry)
self.addressAry = result.value(forKey: "customer_address") as!
NSMutableArray
self.tableView.reloadData()
let tempData = NSKeyedArchiver.archivedData(withRootObject: self.addressAry)
UserDefaults.standard.set(tempData, forKey: kAddToWishlist)
})
}
..あなたはこのコードを使用することにより、クッキーとキャッシュをクリアする必要があるべきだと思いますか? viewDidAppearMethodの –
。 –
問題をよりよく理解するために、そのコードを追加する必要があります。 –