Добавление делегата в пользовательский UITableViewCell (ошибка неверного доступа)

Я пытаюсь добавить пользовательский делегат в мой собственный UITableViewCell.

В этой ячейке у меня есть кнопка, которая должна вызвать метод в ViewController, где находится UITableView.

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

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

Я реализую протокол в ВК. Я назначил делегата ячейке в cellForRowAtIndexPath :. Все методы делегата на месте. Я использовал подобные конструкции в других классах, но никогда ранее не был в подклассе UITableViewCells.

Прежде чем опубликовать код, я хотел бы знать, сталкивался ли кто-нибудь с этой ошибкой раньше. Если и как он решил это, или если вообще возможно сделать пользовательский делегат для подкласса UITableViewCell.

РЕДАКТИРОВАТЬ:

Мой customCell.h

#import <UIKit/UIKit.h>

@class MyTableViewCell;

@protocol MyTableCellProtocoll <NSObject>

-(void) didPressButton:(MyTableViewCell *)theCell;

@end

@interface MyTableViewCell : UITableViewCell
{

    UIButton *myButton;

    id<MyTableCellProtocoll> delegationListener;

}

@property (nonatomic,retain) UIButton *myButton;

@property (nonatomic,assign) id<MyTableCellProtocoll> delegationListener;

- (void) buttonAction;

@end

.m

#import "MyTableViewCell.h"

@implementation MyTableViewCell

@synthesize myButton;
@synthesize delegationListener;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // Initialization code

        self.myButton = [UIButton buttonWithType:UIButtonTypeCustom];
        self.myButton.backgroundColor = [UIColor clearColor];
        self.myButton.frame = CGRectMake(5, 0, 10, 32);
        self.myButton.titleLabel.adjustsFontSizeToFitWidth = YES;
        [self.myButton addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside];
        [self.contentView addSubview:self.myButton];  
    }
    return self;
}

- (void) buttonAction
{
    NSLog(@"buttonpressed");
    [self.delegationListener didPressButton:self];
}

@end

MyVC реализует делегата как должного в .h

@interface MyVC : UIViewController <UITableViewDelegate, UITableViewDataSource, MyTableCellProtocoll>

и он также использует один метод делегата из MyTableCellProtocoll в .m

- (void)didPressButton:(MyTableViewCell *)theCell
{
    NSLog(@"didPressButton");
}

Я назначаю делегата в cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{    
    static NSString *CellIdentifier = @"Cell";

    MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[MyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        cell.delegationListener = self;
    }

    return cell;
}

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

Надеюсь, это прояснит ситуацию немного больше.

EDIT2: метод кнопки не вызывается при запуске, как было упомянуто в разделе комментариев. Отредактированный код с лог-кодом.

EDIT3: нет ничего плохого в кнопке. Это свойство делегата, которое где-то испорчено. С точками останова, журналами и комментариями я в этом убедился.

Код выполняется до последнего элемента в моем списке источников данных, а затем происходит сбой. 1 шаг ближе к проблеме, я полагаю.

ЗАКЛЮЧИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ: Хорошо, похоже, что все делегаты, кнопки и другие компоненты не были проблемой вообще. Это была высота ForRowAtIndexPath: меня обманывают. Спасибо за вашу поддержку в любом случае!

Ответы на вопрос(3)

Ваш ответ на вопрос