У меня есть функция, которая получает данные с сайта api.cURL получить данные не обновляется при изменении данных на сервере
func getData() {
print("getData is called")
//create authentication ... omitted
//create authentication url and request
let urlPath = "https://...";
let url = NSURL(string: urlPath)!
let request: NSMutableURLRequest = NSMutableURLRequest(URL: url)
request.setValue("Basic \(base64EncodedCredential)", forHTTPHeaderField: "Authorization")
request.HTTPMethod = "GET"
//some configuration here...
let task = session.dataTaskWithURL(url) { (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in
let json = JSON(data: data!)
}
task.resume()
}
Я могу получить данные из API, и у меня есть наблюдатель, так что каждый раз, когда приложение переходит на передний план функции GetData() можно вызвать еще раз, чтобы обновить данные.
override func viewDidLoad() {
NSNotificationCenter.defaultCenter().addObserver(self, selector: "willEnterForeground", name: UIApplicationWillEnterForegroundNotification, object: nil)
}
func willEnterForeground() {
print("will enter foreground")
getData()
}
Я уверен, что, когда мое приложение выходит на передний план, то GetData() вызывается снова, однако, мои данные не обновляются, даже если данные на сервере API изменилось. Я попытался закрыть приложение и снова открыть его, но он по-прежнему не обновляет данные. Поэтому мне было интересно, может ли кто-нибудь дать мне несколько советов. Любая помощь будет оценена!
Я добавил некоторые точки останова в 'let task = session.dataTaskWithURL (url) {(данные: NSData ?, response: NSURLResponse ?, error: NSError?) -> Пустота в let json = JSON (данные: данные!) } 'и кажется, что мой код попытался извлечь данные (api изменяет данные каждую минуту), однако он получил старые данные, даже если я заметил, что данные на сервере api изменились. Если я отправил приложение на фон в течение длительного времени (около 15 минут), когда он будет перенесен на передний план, данные будут обновлены. – dksl176