以下を参考してGAS⇔swiftの連携しようとしています。
https://qiita.com/saenuruki/items/01f713b14ea632e606e0
以下はswiftコードです。
swift
1import Foundation 2 3struct APIRequest { 4 5 static let mainAPIHost: String = "https://script.google.com/macros/s/AKf****************swg/exec" 6 7 static func getSheetData(){ 8 9 var request = URLRequest(url: URL(string: mainAPIHost)!) 10 request.httpMethod = "GET" 11 let task = URLSession.shared.dataTask(with: request) { data, response, error in 12 guard let jsonData = data else { return } 13 14 struct Result: Codable { 15 var vitals: [Vital] 16 } 17 18 do { 19 let vitals = try JSONDecoder().decode(Result.self, from: jsonData) 20 print(vitals) 21 } catch { 22 print(error.localizedDescription) 23 } 24 } 25 task.resume() 26 } 27} 28 29struct Vital: Codable { 30 var id: String 31 var name: String 32 var nameJP: String 33 var description: String 34 var usage: String 35}
最終的に[vitals]に含めたResult型のデータがprintで出力されるのですが、
今回はreturnしてデータを抜き出すことを目標にしています。
どのようにしたらvitalsを引き出すことができるかご教授ください。
よろしくお願いします。
非同期処理なので getSheetData からは return できません。結果が得られた時に行う処理を callback として渡す必要があります。
https://qiita.com/netetahito/items/2c12a19a0a30237b1176
回答1件
あなたの回答
tips
プレビュー