Swift Language
पूरा करने वाला हैंडलर
खोज…
परिचय
वस्तुतः सभी एप्लिकेशन मुख्य धागे को अवरुद्ध करने से कोड को रखने के लिए अतुल्यकालिक कार्यों का उपयोग कर रहे हैं।
कोई इनपुट तर्क के साथ समापन हैंडलर
func sampleWithCompletion(completion:@escaping (()-> ())){
let delayInSeconds = 1.0
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + delayInSeconds) {
completion()
}
}
//Call the function
sampleWithCompletion {
print("after one second")
}
इनपुट तर्क के साथ समापन हैंडलर
enum ReadResult{
case Successful
case Failed
case Pending
}
struct OutpuData {
var data = Data()
var result: ReadResult
var error: Error?
}
func readData(from url: String, completion: @escaping (OutpuData) -> Void) {
var _data = OutpuData(data: Data(), result: .Pending, error: nil)
DispatchQueue.global().async {
let url=URL(string: url)
do {
let rawData = try Data(contentsOf: url!)
_data.result = .Successful
_data.data = rawData
completion(_data)
}
catch let error {
_data.result = .Failed
_data.error = error
completion(_data)
}
}
}
readData(from: "https://raw.githubusercontent.com/trev/bearcal/master/sample-data-large.json") { (output) in
switch output.result {
case .Successful:
break
case .Failed:
break
case .Pending:
break
}
}
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow