У меня есть указатель в классеjective-C, на который мне нужно отправлять сообщения. Указатель может быть любым, поэтому мне нужно убедиться, что он ответит на мои сообщения, прежде чем я отправлю их. Вот функция, которую я использую для проверки:
int delegatePreparedForSelector(id delegate, SEL aSelector) {
if (delegate
&& [delegate isKindOfClass:[NSObject class]]
&& [delegate respondsToSelector:aSelector]) {
return YES;
}
return NO;
}
Проблема в том, что иногда указатель делегата равен struct objc-object *
, и при отправке сообщения isKindOfClass
я получаю EXC_BAD_ACCESS
ошибку неверного доступа.
Есть ли лучший тест, который я должен использовать, чтобы определить, будет ли делегат отвечать на мои сообщения?