Почему NSLog вызывает EXC_BAD_ACCESS? - PullRequest
1 голос
/ 23 сентября 2011

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

У меня это работает, но мне нужно идентифицировать нажатую кнопку. Итак, я сделал следующее:

в cellForRowAtIndexPath я делаю следующее:

cell.myBtn.tag = indexPath.row;
[cell.myBtn addTarget:self 
               action:@selector(viewClick:) 
     forControlEvents:UIControlEventTouchUpInside];

И я создал метод селектора так:

- (void)viewClick:(id)sender
{
    UIButton *pressedButton = (UIButton *)sender;

    // EXC_BAD_ACCESS when running NSLog
    NSLog(@"button row %@",pressedButton.tag);

    if(pressedButton.tag == 1)
    {
       // NSString filename = @"VTS_02_1";
    }
}

Проблема в том, что я получаю EXC_BAD_ACCESS, когда он попадает в эту строку: NSLog(@"button row %@",pressedButton.tag);

Ответы [ 2 ]

4 голосов
/ 23 сентября 2011

укажите% i для значения int

вы должны использовать% @ только для объекта, но int не является объектом, NSNumber является объектом, для которого вы можете использовать% @.

    NSLog(@"button row %i",pressedButton.tag);
3 голосов
/ 23 сентября 2011

try NSLog(@"button row %d", pressedButton.tag);

свойство тега является целым, а не объектом.

...