teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

ご回答いただいた内容に沿って修正いたしました。

2020/05/13 11:47

投稿

Ka_ya_
Ka_ya_

スコア31

title CHANGED
File without changes
body CHANGED
@@ -95,4 +95,55 @@
95
95
  return dataList
96
96
  }
97
97
  }
98
+ ```
99
+
100
+ *コントローラークラスのAPIメソッド呼び出し箇所を修正*
101
+
102
+ ```Swift
103
+ //写真を撮影した後
104
+ func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
105
+
106
+ if let pickedImage = info[.editedImage] as? UIImage {
107
+
108
+ //イメージをbase64にエンコードする
109
+ let imageData = pickedImage.pngData()! as NSData
110
+ let imageString = imageData.base64EncodedString(options: .lineLength64Characters)
111
+
112
+ var dataList = Util.returnData(image:imageString, completion: {
113
+ result in
114
+ print(result.data1)←値が表示されない
115
+ //商品リストへ遷移する
116
+ picker.dismiss(animated: true, completion: nil)←画面遷移しない
117
+ })
118
+ }
119
+ ```
120
+ *UtilクラスのAPI呼び出し箇所の修正*
121
+ ```Swift
122
+ class Util{
123
+
124
+ class func returnData(image:String), completion: @escaping (DataList) -> Void) {
125
+ //インスタンスを用意しておく
126
+ var dataList = DataList()
127
+
128
+ //JSONデータを取得する
129
+ session.dataTask(with: request) { (data, response, error) in
130
+ if error == nil, let data = data, let response = response {
131
+
132
+ let jsonData = try! JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments) as? [String: [String:Any]]
133
+
134
+ if let data = jsonData?["hits"] {
135
+
136
+ let data1 = data["data1"] as! String
137
+ let data2 = data["data2"] as! String
138
+ let data3 = data["data3"] as! String
139
+ //取得した値を格納する
140
+ dataList = DataList(data1,data2,data3)
141
+ }
142
+ } else {
143
+ // API通信失敗
144
+ print(error as Any)
145
+ }
146
+ }.resume()
147
+ }
148
+ }
98
149
  ```