Я работаю под Delphi, и я пытаюсь понять, что именно является параметром authorization: ASAuthorization
в didCompleteWithAuthorization
делегате ASAuthorizationControllerDelegate
// 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 {
и
} else if let passwordCredential = authorization.credential as? ASPasswordCredential {
означает ли это, что authorization.credential
наследуется от обоих типов: ASAuthorizationAppleIDCredential
& ASPasswordCredential
или authorization.credential
просто указатель, который может быть любым видом объекта, и нам просто нужно привести этот указатель? Как узнать с типом объекта authorization.credential
? В со сценарием ios authorization.credential
вернуть ASAuthorizationAppleIDCredential
?