Swift
Swift
Get the LastErrorText for an Asynchronous Method Call
See more Async Examples
Demonstrates how to get the LastErrorText information for a Chilkat method called asynchronously.Chilkat Swift Downloads
func chilkatTest() {
var success: Bool = false
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let socket = CkoSocket()!
// The Async call simply creates the task. The "Connect" method has not yet been called.
var maxWaitMs: Int = 5000
// Let's intentionally cause this connect to fail by giving it an invalid domain..
var task: CkoTask? = socket.connectAsync(hostname: "amazonbladflakjsdflksadjf.com", port: 443, ssl: true, maxWaitMs: maxWaitMs)
if socket.lastMethodSuccess == false {
print("\(socket.lastErrorText!)")
return
}
// Start the background thread to run the task.
success = task!.run()
if !success {
print("\(task!.lastErrorText!)")
task = nil
return
}
// The application is now free to do anything else
// For this example, we'll simply sleep and periodically
// check to see if the Socket Connect if finished.
while task!.finished != true {
// Sleep 1 ms.
task!.sleepMs(numMs: 1)
}
// If the task completed, it means the method (in this case the Connect method) was called and returned success or failure.
if task!.statusInt.intValue != 7 {
print("Task did not complete.")
print("task status: \(task!.status!)")
task = nil
return
}
// Get the success/failure of the Connect
// (This is the return value of the Connect method had it been called synchronously)
success = task!.getResultBool()
if success == false {
// Get the LastErrorText for the Connect method call.
// Had we called Connect synchronously, we would've simply accessed the socket object's LastErrorText property.
// Instead, we get the task object's ResultErrorText.
print("\(task!.resultErrorText!)")
}
else {
print("Connect succeeded.")
}
task = nil
}