Swift 如何在没有成功或错误的情况下处理快速结果?

Swift 如何在没有成功或错误的情况下处理快速结果?,swift,Swift,斯威夫特的结果类型很棒。但是,如果出现“用户取消登录”这样的情况,例如,Facebook SDK不会给您任何结果,也不会给您任何错误,该怎么办 这不是成功,因为您尚未登录 如果没有错误,您不能调用failure 必须做出自己的“回退”错误是解决这个问题的一种方法 另一个是: 扩展名可选:错误{} 这让人觉得奇怪和错误,但却让你完成了completion(.failure(nil)) 有没有一种惯用的快速方法来处理这种情况?你是说取消请求吗?然后试试这个: if (response.error

斯威夫特的
结果
类型很棒。但是,如果出现“用户取消登录”这样的情况,例如,Facebook SDK不会给您任何结果,也不会给您任何错误,该怎么办

  • 这不是成功,因为您尚未登录
  • 如果没有错误,您不能调用failure
  • 必须做出自己的“回退”错误是解决这个问题的一种方法
  • 另一个是:
扩展名可选:错误{}

这让人觉得奇怪和错误,但却让你完成了
completion(.failure(nil))


有没有一种惯用的快速方法来处理这种情况?

你是说
取消
请求吗?然后试试这个:

if (response.error as NSError?)?.code == NSURLErrorCancelled {
   // Do Your stuff
}

创建自己的错误类型

enum LoginError: Error {
    case userCancelled
    ...
}

对于我来说,将其视为任何其他错误是最有意义的,因为正如您所说,成功在于用户登录。

这对于Facebook SDK来说是一件好事,但不幸的是,在这种情况下,它没有。