APIを使ってひらがなに変換するアプリを作成しています。
textFieldに入力した漢字が、hiraganaConvertButtonを押すことでひらがなに変換された値がtestLabelに表示されるようにしたいのですが、表示されません。
どのようにしたらよろしいでしょうか?
ご教授いただければ幸いです。
Swift
1 2import UIKit 3 4class ViewController: UIViewController, UITextFieldDelegate { 5 6 @IBOutlet weak var testLabel: UILabel! 7 @IBOutlet weak var textField: UITextField! 8 9 // レスポンスデータの構造 10 struct PostData: Codable { 11 var app_id : String 12 var request_id : String 13 var sentence : String 14 var output_type : String 15 } 16 17 struct Rubi: Codable { 18 var request_id : String 19 var output_type : String 20 var converted : String 21 } 22 23 var sentence: String = "" 24 25 26 override func viewDidLoad() { 27 super.viewDidLoad() 28 29 30 31 textField.delegate = self 32 33 } 34 35 @IBAction func hiraganaConvertButton(_ sender: Any) { 36 37 print(sentence) 38 sentenceChange() 39 testLabel.text = sentence 40 41 } 42 // ModalViewに値を渡す 43 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 44 45 let modalVC = segue.destination as! ModalViewController 46 modalVC.result = sentence 47 } 48 49 // ひらがなに変換 50 func sentenceChange() { 51 if textField.text != nil { 52 var request = URLRequest(url: URL(string: "https://labs.goo.ne.jp/api/hiragana")!) 53 request.httpMethod = "POST" 54 request.addValue("application/json", forHTTPHeaderField: "Content-Type") 55 56 let postData = PostData(app_id: "APIキー",request_id: "record003", sentence: textField.text!, output_type: "hiragana") 57 58 guard let uploadData = try? JSONEncoder().encode(postData) else { 59 print("失敗しました") 60 return 61 } 62 let task = URLSession.shared.uploadTask(with: request, from: uploadData) { data, response, error in 63 if let error = error { 64 print("error:(error)") 65 return 66 } 67 68 guard let data = data, let jsonData = try? JSONDecoder().decode(Rubi.self, from: data) else { 69 print("json変換に失敗しました") 70 return 71 } 72 print(jsonData.converted) 73 } 74 task.resume() 75 }else{ 76 print("文章を入力してね") 77 } 78 79 } 80 81 // キーボードを閉じる 82 func textFieldShouldReturn(_ textField: UITextField) -> Bool { 83 textField.resignFirstResponder() 84 return true 85 } 86 87} 88 89 90 91 92
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/18 12:22
2019/10/18 13:11
2019/10/18 13:24
2019/10/18 13:30 編集
2019/10/18 13:40 編集
2019/10/18 13:39
2019/10/18 13:45
2019/10/18 13:50
2019/10/18 13:58 編集
2019/10/18 13:57
2019/10/18 14:02
2019/10/18 14:04 編集
2019/10/18 14:18
2019/10/18 15:00
2019/10/18 15:23
2019/10/18 22:53
2019/10/18 23:30
2019/10/18 23:31
2019/10/19 10:27