Skip to content

Instantly share code, notes, and snippets.

@tkdmaf
Created April 27, 2022 03:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tkdmaf/19790d5bb9f0f3c5070b0d3f364d7071 to your computer and use it in GitHub Desktop.
Save tkdmaf/19790d5bb9f0f3c5070b0d3f364d7071 to your computer and use it in GitHub Desktop.
Use Async/Await withCheckedContinuation resume(returning: [This is Codable]) can Crash...For sub Codable has 14 variable for String Type
import Foundation
struct ParentData: Codable {
var subA: SubAData = SubAData()
var subB: SubBData = SubBData()
var subC: SubCData = SubCData()
}
struct SubAData: Codable {
var aaa: String = ""
var bbb: String = ""
var ccc: String = ""
var ddd: String = ""
var eee: String = ""
var fff: String = ""
// var ggg: Int = 0
// var hhh: Int = 0
}
struct SubBData: Codable {
var aaa: String = ""
var bbb: String = ""
var ccc: String = ""
var ddd: String = ""
// var eee: String = ""
// var fff: String = ""
// var ggg: String = ""
}
struct SubCData: Codable {
var aaa: String = ""
var bbb: String = ""
var ccc: String = ""
var ddd: String = ""
// var eee: String = ""
// var fff: String = ""
// var ggg: String = ""
}
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func viewDidAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.reqData()
}
func reqData() {
Task {
async let parent1 = getData()
async let parent2 = getData()
async let parent3 = getData()
let (pp1, pp2, pp3) = await (parent1, parent2, parent3)
print(pp1)
print(pp2)
print(pp3)
}
}
func getData() async -> ParentData {
await withCheckedContinuation({ continuation in
let codable = ParentData()
continuation.resume(returning: codable)
})
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment