如果您在使用苹果的ASAuthorizationController时,遇到了处理多个请求时的问题,可以按照以下步骤进行解决:
var authorizationControllers = [ASAuthorizationController]()
let appleIDProvider = ASAuthorizationAppleIDProvider()
let request = appleIDProvider.createRequest()
request.requestedScopes = [.fullName, .email]
let controller = ASAuthorizationController(authorizationRequests: [request])
controller.delegate = self
controller.presentationContextProvider = self
authorizationControllers.append(controller)
func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
// Handle authorization
if let index = authorizationControllers.index(of: controller) {
authorizationControllers.remove(at: index)
}
}
func authorizationController(controller: ASAuthorizationController, didCompleteWithError error: Error) {
// Handle error
if let index = authorizationControllers.index(of: controller) {
authorizationControllers.remove(at: index)
}
}
这样,您就可以同时处理多个ASAuthorizationController请求了。