質問編集履歴

1 文字変更

yuu2424

yuu2424 score 13

2018/10/19 18:34  投稿

xcode エラーが消えない(お菓子検索)
//
// ViewController.swift
// myokashi
//
// Created by MacOS on 2018/10/15.
// Copyright © 2018年 Swift-Beginners. All rights reserved.
//
import UIKit
class ViewController: UIViewController,UISearchBarDelegate {
   override func viewDidLoad() {
       super.viewDidLoad()
       // Do any additional setup after loading the view, typically from a nib.
       searchText.delegate = self
       searchText.placeholder = "お菓子の名前を入力して下さい"
       
   }
   override func didReceiveMemoryWarning() {
       super.didReceiveMemoryWarning()
       // Dispose of any resources that can be recreated.
   }
   @IBOutlet weak var searchText: UISearchBar!
   
   @IBOutlet weak var tableView: UITableView!
   
   var okashiList : [(maker:String , name:String , link:URL , image:URL)] = []
   func searchBarSearchButtonClicked(_ searchBar: UISearchBar){
       view.endEditing(true)
       if let searchWord = searchBar.text{
           print(searchWord)
           searchOkashi(keyWord: searchWord)
       }
   }
   struct ItemJson: Codable{
       let name: String?
       let maker: String?
       let url: URL?
   }
   struct ResultJson: Codable{
       let item:[ItemJson]
   }
   
   func searchOkashi(keyWord : String) {
       guard let keyword_encode = keyWord.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {
           return
       }
       guard let req_url = URL(string: "http://www.sysbird.jp/toriko/api/?apikey=guest&format=json&keyword=\(keyword_encode)&max=10&order=r")else{return}
       print(req_url)
       let req = URLRequest(url: req_url)
       let session = URLSession(configuration: .default, delegate: nil, delegateQueue: OperationQueue.main)
       let task = session.dataTask(with: req, completionHandler: {
           (data, response, error) in
           session.finishTasksAndInvalidate()
           do {
               let decoder = JSONDecoder()
               let json = try decoder.decode(ResultJson.self, from: data!)
               
               **if let items = json.item {**
                   for item in items {
                       if let maker = item.maker , let name = item.name , let link = item.url , let image = item.image {
                           let okashi = (maker,name,link,image)
                           self.okashiList.append(okashi)
                       }
                   }
                   if let okashidbg = self.okashiList.first {
                       print("-------------")
                       print("okashiList[0] = \(okashidbg)")
                   }
               }
           } catch {
               print("エラーが出ました")
           }
       })
       task.resume()
   }
  • Xcode

    7781 questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る