Как сделать ИС с объективным C классом? - PullRequest
1 голос
/ 20 апреля 2020

Я пытаюсь преобразовать эту функцию ios / target- c в delphi Rio 10.3.3

func authorizationController(authorization: ASAuthorization) {
    if let appleIDCredential = authorization.credential as? ASAuthorizationAppleIDCredential { 

    } else if let passwordCredential = authorization.credential as? ASPasswordCredential {

    }
}

Я установил authorization.credential как pointer. Теперь моя проблема в том, как с помощью этого указателя я могу проверить IS ASAuthorizationAppleIDCredential, прежде чем разыграть, например:

if authorization.credential IS ASAuthorizationAppleIDCredential then 
  TASAuthorizationAppleIDCredential.wrap(authorization.credential);

1 Ответ

1 голос
/ 20 апреля 2020

Вы бы использовали isKindOfClass: селектор, который находится в NSobject. В вашем случае

if([authorization.credential isKindOfClass:[AsAuthorizationAppleIDCredential class]])
{ // is that class }

https://developer.apple.com/documentation/objectivec/1418956-nsobject/1418511-iskindofclass?language=objc

РЕДАКТИРОВАТЬ: Если вы хотите выполнить только один селектор на объекте, вы также можете проверить, выполняет ли он этот селектор с RespondsToSelector: https://developer.apple.com/documentation/objectivec/1418956-nsobject/1418583-respondstoselector?language=objc

...