为什么NSLog会导致EXC_BAD_ACCESS?

时间:2011-09-23 16:03:50

标签: iphone xcode selector

我有一个带有按钮的tablecell,我想把它挂钩到我的主类中的方法调用。

我有它工作,但我需要确定按下的按钮。所以我做了以下事情:

在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 个答案:

答案 0 :(得分:4)

为int值指定%i

你必须只使用%@作为对象,但int不是对象,NSNumber是一个可以使用%@的对象。

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

答案 1 :(得分:3)

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

tag属性是一个int而不是一个对象。