xcode 在Swift 5中如何调用此闭包

hpcdzsge  于 2022-11-18  发布在  Swift
关注(0)|答案(2)|浏览(155)

我还是Swift开发的新手,我想知道如何调用这个函数的状态和结果?

func getStatus(completion: @escaping (Swift.Result<SubscriptionStatus, MAPIError>) -> Void )
{
   getStatus { result in
            switch(result) {
            case .success(let subscription):
                switch(subscription.status) {
                case .subscribed:
                    completion(.success(true))
                default:
                    completion(.success(false))
                }
            case .failure(let error):
                completion(.failure(error))
            }
        }
   }

非常感谢
调用函数

mzaanser

mzaanser1#

结果是枚举,可以是:
成功

故障
所以completion(.success(value))或者completion(.failure(someError))

euoag5mw

euoag5mw2#

Result是swift中一个非常强大的关键字!它决定了任务的成功还是失败。
若要完成函数,应如下调用:

completion(.success(SubscriptionStatusValue))

如果任务成功
或者

Completion(.failure(error))

要调用您的函数,您应该这样做:

self.getStatus { result in 
switch result { 
case .success(let value):
/// do something with value 
case .failure(let error):
///handle error

希望对你有帮助!

相关问题