У меня есть класс ImageViewController
. Она делегирует:Подкласс как делегат суперкласса
@protocol ImageViewControllerDelegate
@optional
- (void)singleTapGestureRecognizer:(UITapGestureRecognizer *)gesture;
- (void)imageDidLoaded;
У меня есть класс AttachmentViewController
что подкласс ImageViewController
. В этом классе я хочу получить событие, а затем свойство изображения в измененном. Так вот мой код его изменить:
- (void)setImage:(UIImage *)image
{
// * Assign image with animation
[UIView transitionWithView:self.imageView
duration:k_DURATION_imageAppearence
options:UIViewAnimationOptionTransitionCrossDissolve
animations: ^{
self.imageView.alpha = 1;
} completion:^(BOOL finished) {
if ([self respondsToSelector:@selector(imageDidLoaded)]) {
[self.delegate imageDidLoaded];
}
}];
Но я не могу использовать
if ([self.DELEGATE respondsToSelector:@selector(imageDidLoaded)])
Тогда я это делаю у меня есть ошибка:
No known instance method for selector 'respondsToSelector:'
Почему? И как здесь мне нужно использовать эти возможности? Является ли моя реализация одобренной? Или как я могу получить это уведомление?
Я думаю, что здесь будет нормально создавать четкие методы в суперклассе и переопределять его в подклассе, если ему нужно реализовать. Это лучший способ?
Сначала изучите класс и делегат одного из них, и вы сможете решить вашу проблему. Вам не хватает знаний о делетете –
@nischalhada Это не имеет никакого отношения к синглонам или делегатам. См. Текущий ответ на проблему. – rmaddy
если извините за неудобство –