SearchButtonClickedメソッドから、URLSessionクラスを呼び出したい。
コードが煩雑なので、
URLSessionをRepositoryApi
クラスにて分割したいです。
VCのsearchBarSearchButtonClicked
内にて、
@IBAction func
のように{}内で関数を呼び出す事ができないのですが、
サーチボタンをクリックした際、
getRandomRepoUrlSession()
を呼び出して実行するには、どのようにすべきでしょうか?
## コード
SearchRootVC
1 func searchBarSearchButtonClicked(_ searchBar: UISearchBar) { 2 // getRandomRepoUrlSession()を実行する処理をかきたい。 3 }
RepositoryApi
1import UIKit 2 3class RepositoryApi: SearchRootVC { 4 5 var url: String! 6 7 func getRandomRepoUrlSession() { 8 9 let word = searchBar.text! 10 11 if word.count > 0 { 12 url = URL_BASE + "(word)" 13 let task = URLSession.shared.dataTask(with: URL(string: url)!) { (data, res, err) in 14 15 guard err == nil else { 16 debugPrint(err.debugDescription) 17 return 18 } 19 20 if let obj = try! JSONSerialization.jsonObject(with: data!) as? [String: Any] { 21 if let items = obj["items"] as? [[String: Any]] { 22 self.repo = items 23 DispatchQueue.main.async { 24 self.tableView.reloadData() 25 } 26 } 27 } 28 } 29 task.resume() 30 } 31 32 } 33}
質問は以上です。
お時間あるときに、ご返信頂けましたら幸いです????
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。