Я работаю над приложением викторины, которое извлекает данные из базы данных с помощью различных вызовов API. По какой-то причине, когда я пытаюсь вытащить новые данные (мы добавили/удалили викторину из базы данных), я получаю старый JSON, пока не удалю и не переустановит приложение на симулятор. Я распечатываю JSON, который извлекается, и на телефоне отображаются те же самые викторины, которые вытягиваются. Странно то, что если мы сделаем запрос в браузере, мы увидим обновленный JSON сразу после редактирования базы данных. Что более странно, так это то, что он работал нормально (обновляется, когда мы перезагружаем представление) до сегодняшнего дня, и наш обзор лидеров обновляется нормально. Парень, работающий в базе данных, клянется, что он ничего не изменил, но я не коснулся функции, которая обрабатывает вызов API через несколько недель. Любые предложения будут ценны. Я поставлю метод, который я использую ниже.Приложение iOS извлекает новые данные из базы данных после переустановки приложения?
func getQuizTitles() {
let getQuizTitlesURL = URL(string: "(api_url_here)")
URLSession.shared.dataTask(with: getQuizTitlesURL! as URL, completionHandler: {(data, response, error) in
print(response as Any)
do{
if let parsedData = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? NSArray {
print(parsedData)
var title:String
var creator:String
var length:Int
var quizId:Int
let questions:[Question] = []
for index in 0...parsedData.count-1 {
let aObject = parsedData[index] as! [String : AnyObject]
title = (aObject["Title"] as? String)!
if aObject["Creator"] as? String == nil {
creator = ""
}else{
creator = aObject["Creator"] as! String
}
//length = aObject["Length"]
length = 0
quizId = (Int((aObject["ID"] as? String)!)!)
let quiz:Quiz = Quiz(title: title, creator: creator, length: length, quizId: quizId , questions: questions)
self.quizArray.append(quiz)
}
}
if let HTTPResponse = response as? HTTPURLResponse {
print(HTTPResponse)
let statusCode = HTTPResponse.statusCode
if statusCode == 200 {
print("Success")
}
}
}catch let error as NSError {
print(error)
}
DispatchQueue.main.async {
self.tableViewOutlet.reloadData()
}
}).resume()
}
После getQuizTitlesURL переменной просто ясно массив quizArray, что-то вроде этого quizArray = [] – iParesh
спасибо за предложение, но, похоже, ничего не менять –