###前提・実現したいこと
現在APIから情報を取って来て、tableViewのセルに表示するシステムを実装しています。
その過程で無限スクロールのようなものを実装したく、messageという変数の中に、次のデータを読み込み次第追加していくようにしたいと思っています。
そこでappendを試みたところ、以下のエラーメッセージが発生しました。
###発生している問題・エラーメッセージ
エラーメッセージ Cannot convert value of type '[list]' to expected argument type 'list'
###該当のソースコード
Swift
1 // ViewController.swift 2 3 var messages = MainJason.init(cnt: 0, list: []) 4 5 6 //this function is fetching the json from URL 7 func getJsonFromUrl(lastPostNum: Int){ 8 // APIからデータを取得 9 let listUrl = "http://〇〇〇〇.php" 10 Alamofire.request(listUrl).responseJSON{ response in 11 12 let data = response.data 13 14 let decoder = JSONDecoder() 15 self.newMessages = try! decoder.decode(MainJason.self, from: data!) 16 let newList = self.newMessages.list 17 18 self.messages.list.append(newList)// ここでエラーが出ます。 19 20 DispatchQueue.main.async { 21 self.tableView.reloadData() 22 } 23 24 } 25 26 }
swift
1 2struct MainJason: Codable { 3 var cnt: Int 4 var list: [list] 5} 6 7 8struct list: Codable { 9 var insert_date: String 10 var insert_user_id: String 11 var message: String 12 var message_id: String 13 var threshold: Int 14 var title: String? 15 var image: [String]? 16}
###試みたこと
エラー文の通り[]を外せばいいのだろうと考え、表示された選択肢からlist?と記述されていた.lastを選択してみると無事appendされました。しかし、これだと最後の一件しかappendできていないので、すべてのものをappendしたいです。
###補足情報(言語/FW/ツール等のバージョンなど)
Swift4, Alamofireを使用してJASONを取得しています。
データの取得は確認済みで、tableViewにも表示ができています。
ただ追加の読み込み時のappendができない状況です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/01/12 01:18