ほんと相変わらずイライラさせてくれるSwiftです。何度もマジックキーボードを窓から投げそうになりました。
結論:PlaygroundPage.current.needsIndefiniteExecution = true をつけろ
URLSession.shared.dataTask で何度やってもエラーも出ないし、で、実行もできてないようで、どういうことなのかと調べまくったら、結論の通り。以下のような感じでつけておく。
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
//あとは好きにしろ
実際に動くか以下でテストしてみる
import Foundation
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
struct json_code:Codable{
struct Item:Codable{
let user_id:UInt
let user_name:String
}
let count:UInt
let item:[Item]
}
let urlstr:String = "■json取得先のURL"
let requesturl = URL(string: urlstr)!
let request = URLRequest(url: requesturl)
let task = URLSession.shared.dataTask(with:request){(data,response,error) in
print("unko")
do{
let decoder = JSONDecoder()
let json = try decoder.decode(json_code.self,from:data!)
print(json)
}catch{
print("json parse error")
print(error)
print(error.localizedDescription)
}
}
task.resume()
結果
unko
json_code(count: 2, item: [Page_Contents.json_code.Item(user_id: 123456, user_name: "がちゃぴん"), Page_Contents.json_code.Item(user_id: 789101, user_name: "ムック")])