public typealias CompletionClosure = (Result<Void, ErrorInfo>) -> Void
Property | Type | Description |
code | Int | Error code. |
message | String | Error message description. |
Result is a generic enum with two cases:.success(value): Operation succeeded, associated value is the success result.failure(error): Operation failed, associated value is the error info// Define a method using ListResultCompletionClosurefunc fetchUserList(cursor: String, completion: @escaping ListResultCompletionClosure<User>) {// Async operation...}// Call the method and handle the ResultfetchUserList(cursor: "") { result inswitch result {case .success(let (users, nextCursor)):// Handle success - users is [User], nextCursor is Stringprint("Fetched \\(users.count) users, next cursor: \\(nextCursor)")for user in users {print("User: \\(user.name)")}case .failure(let error):// Handle failure - error is ErrorInfoprint("Error code: \\(error.code), message: \\(error.message)")}}
// CompletionClosure uses Swift's Result type:// - .success(Void): Operation succeeded// - .failure(ErrorInfo): Operation failedfunc someAsyncOperation(completion: @escaping CompletionClosure) {// Async operation...}someAsyncOperation { result inswitch result {case .success:print("Operation succeeded")case .failure(let error):print("Error code: \\(error.code), message: \\(error.message)")}}
フィードバック