ほんと相変わらずイライラさせてくれる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: "ムック")])

コメント