Неизвестный селектор блока iOS 5

Я пытаюсь назначить блок объекту кнопки, чтобы каждый раз при нажатии кнопки блок выполнялся. У меня есть следующий определенный подкласс кнопки, который содержит блок для каждой уникальной кнопки, которую я создаю.

typedef void (^ButtonPressBlock)();
@interface PhotoButton : UIButton 
{
    ButtonPressBlock photoButtonPressed;
}
@property (copy) ButtonPressBlock photoButtonPressed;
@end

В .m есть @synthesize photoButtonPressed.

В отдельном UIViewController я #import "PhotoButton.h", а затем в этом контроллере представления у меня есть метод, который создает кнопки. Код выглядит так.

    PhotoButton* photoButton = [UIButton buttonWithType:UIButtonTypeCustom];
        photoButton.frame = CGRectMake(i, j, thumbSize+2, thumbSize+2);
        [photoButton setImage:photoThumb forState:UIControlStateNormal];
        [photoButton setAdjustsImageWhenHighlighted:NO];

        [photoButton setPhotoButtonPressed:^()
             {                                                    
             [self performSegueWithIdentifier:@"photoSegue" sender:aPhoto];
         }];

назначение блока для photoButton не выполняется при выполнении с

- [UIButton setPhotoButtonPressed:]: неопознанный селектор отправлен в экземпляр ...

Не уверен, что делаю неправильно, так как блоки для меня в новинку. Я подумал, что это будет отличный способ сделать миниатюрное изображение отзывчивым на прикосновение, а затем перейти к полноразмерному изображению в другом контроллере представления. Теперь я не уверен.


person jangelo42    schedule 05.01.2012    source источник


Ответы (1)


Этот:

PhotoButton* photoButton = [UIButton buttonWithType:UIButtonTypeCustom];

должно быть:

PhotoButton* photoButton = [PhotoButton buttonWithType:UIButtonTypeCustom];

Вы создавали экземпляр UIButton, а не PhotoButton

person Firoze Lafeer    schedule 05.01.2012