1
我正在使用各種API調用從數據庫中提取數據的測驗應用程序。出於某種原因,當我嘗試提取新數據時(我們已經添加/刪除了數據庫中的測驗),我得到舊的JSON,直到我卸載並重新安裝到模擬器上。我正在打印檢索到的JSON,手機顯示的是相同的測驗。奇怪的是,如果我們在瀏覽器中執行請求,我們會在編輯數據庫後立即看到更新的JSON。 What weirder是,它工作正常(更新,每當我們重新加載視圖),直到今天,我們的排行榜視圖正常更新。在數據庫上工作的人發誓他沒有改變任何東西,但我沒有觸及幾周內處理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
感謝您的建議,但似乎沒有任何改變 –