Ios authorizationController委托未完成授权参数授权的类型是什么:A授权?

Ios authorizationController委托未完成授权参数授权的类型是什么:A授权?,ios,objective-c,swift,xcode,ios13,Ios,Objective C,Swift,Xcode,Ios13,我在Delphi下工作,我试图了解ASAuthorizationControllerDelegate的didpletewithauthorization委托中的authorization:ASAuthorization参数到底是什么 // ASAuthorizationControllerDelegate function for successful authorization func authorizationController(controller: ASAuthorizationCo

我在Delphi下工作,我试图了解
ASAuthorizationControllerDelegate的
didpletewithauthorization
委托中的
authorization:ASAuthorization
参数到底是什么

// ASAuthorizationControllerDelegate function for successful authorization
func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
    if let appleIDCredential = authorization.credential as? ASAuthorizationAppleIDCredential { 
        // Create an account in your system.
        let userIdentifier = appleIDCredential.user
        let userFirstName = appleIDCredential.fullName?.givenName
        let userLastName = appleIDCredential.fullName?.familyName
        let userEmail = appleIDCredential.email

        //Navigate to other view controller
    } else if let passwordCredential = authorization.credential as? ASPasswordCredential {
        // Sign in using an existing iCloud Keychain credential.
        let username = passwordCredential.user
        let password = passwordCredential.password

        //Navigate to other view controller
    }
}
我在这里不完全理解的是,它的确切含义

if let appleIDCredential = authorization.credential as? ASAuthorizationAppleIDCredential {

这是不是意味着,
授权.credential
在继承了两种类型:
ASAuthorizationAppleIDCredential
&
ASPasswordCredential
还是说
授权.credential
只是一个指针,可以是任何类型的对象,我们只需要强制转换这个指针?如何知道对象的类型
授权凭证
?在带有授权的场景中,凭证
返回一个
ASAuthorizationAppleIDCredential

如苹果文档中所述, 凭据是成功身份验证后提供的有关用户的信息

每个凭证都从授权凭证继承/符合授权凭证

共有3种符合条件的类型:ASAuthorizationAppleIDCredential、ASAuthorizationSingleSignOnCredential和ASPasswordCredential

ASAuthorizationAppleIDCredential:成功的Apple ID身份验证产生的凭证

ASAuthorizationSingleSignOnCredential:成功的单点登录(SSO)身份验证产生的凭据

ASPasswordCredential:我们可以使用它创建具有给定用户名和密码的凭据

您可以根据创建凭证的不同方式键入凭证。如果生成的凭据来自Apple ID身份验证,则可以将cred键入AuthorizationAppleIdCredential。

如Apple文档中所述, 凭据是成功身份验证后提供的有关用户的信息

每个凭证都从授权凭证继承/符合授权凭证

共有3种符合条件的类型:ASAuthorizationAppleIDCredential、ASAuthorizationSingleSignOnCredential和ASPasswordCredential

ASAuthorizationAppleIDCredential:成功的Apple ID身份验证产生的凭证

ASAuthorizationSingleSignOnCredential:成功的单点登录(SSO)身份验证产生的凭据

ASPasswordCredential:我们可以使用它创建具有给定用户名和密码的凭据


您可以根据创建凭证的不同方式键入凭证。如果生成的凭据来自Apple ID身份验证,则可以将cred键入ASAuthorizationAppleIDCredential。

但代理何时将返回ASPasswordCredential给我?如何在我的代理中拥有ASPasswordCredential?现在我只看到一个AuthorizationAppleIdCredential您可以手动初始化ASPasswordCredential,或者如果您想要一个示例,在执行密钥链凭据共享时会返回该示例。您也可以在创建使用用户名和密码的登录机制时使用此选项。对不起,我不明白:(如何准确地在我的代理中返回ASPasswordCredential?@loki您是否能够理解如何在代理中返回ASPasswordCredential?我正在寻找一个有用的方法。例如,我无法在Juice应用程序中返回它。但是,代理何时将返回我的ASPasswordCredential?我如何获得ASPasswordCre我的代理中的dential?现在我只看到一个AuthorizationAppleIdCredential您可以手动初始化ASPasswordCredential,或者如果您需要示例,在执行密钥链凭据共享时会返回此消息。您也可以在创建使用用户名和密码的登录机制时使用此消息。抱歉,我不明白:(如何准确地在我的代理中返回ASPasswordCredential?@loki您是否能够理解如何在代理中返回ASPasswordCredential?我正在寻找一种有用的方法。例如,我无法在Juice应用程序中返回它。
} else if let passwordCredential = authorization.credential as? ASPasswordCredential {