###実現したいこと
検索バーに作者の名前を入力して検索ボタンを押すとtextlabelにヒットした最初の本のタイトルが表示される。(nextボタンを押すと次の本のタイトルが表示される。)
###発生している問題
シミュレータでtextfieldに「村上春樹」と入力して検索ボタンを押すと、下記のようなエラーメッセージが表示されます。
invalidURL(url: "https://www.googleapis.com/books/v1/volumes?q=村上春樹") Message from debugger: Terminated due to signal 15
なお、指定したurlにはきちんと飛べるようです。
###該当のソースコード
Swift
1import UIKit 2import Alamofire 3import SwiftyJSON 4import SDWebImage 5 6class ViewController: UIViewController { 7 8 @IBOutlet weak var searchTextField: UITextField! 9 @IBOutlet weak var bookImage: UIImageView! 10 @IBOutlet weak var bookTitleLabel: UILabel! 11 @IBOutlet weak var authorNameLabel: UILabel! 12 13 var count = 0 14 15 override func viewDidLoad() { 16 super.viewDidLoad() 17 // Do any additional setup after loading the view. 18 } 19 20 @IBAction func searchAction(_ sender: Any) { 21 getBookTitle(keyword: searchTextField.text!) 22 } 23 24 @IBAction func next(_ sender: Any) { 25 count += 1 26 } 27 28 func getBookTitle(keyword: String) { 29 30 let url = "https://www.googleapis.com/books/v1/volumes?q=(keyword)" 31 32 AF.request(url, method: .get, parameters: nil, encoding: JSONEncoding.default).responseJSON { 33 (response) in 34 35 switch response.result { 36 37 case .success: 38 let json: JSON = JSON(response.data as Any) 39 let titleString = json["items"][self.count]["volumeInfo"]["title"].string 40 self.bookTitleLabel.text = titleString! 41 42 43 44 45 case .failure(let error): 46 print(error) 47 } 48 } 49 } 50}
何が原因でしょうか?
ご教示いただけると幸いです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/10 08:42