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
感谢您的建议,但似乎没有任何改变 –