私はさまざまな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()
}
だけで明確なquizArrayの配列、提案のためにこのような何かquizArray = [] – iParesh
おかげで、しかし、何も変更していないようでした –