我知道这里有一些非常类似的问题,但我找不到我需要的信息。我在for循环中为我的视图添加了一个UIButtons网格。每次创建新按钮时,我都会调用addTarget:self action:@selector(doYourThing:) forControlEvent:UIControlEventTouchUpInside
。如果我只做一个按钮,它就有效。但是当我使用for循环创建一个完整的按钮网格时,没有一个按钮想要调用选择器而是获得EXC_BAD_ACCESS。有什么建议?感谢大家。
- (void)viewDidLoad
{
[super viewDidLoad];
[titleLabel setText:[site title]];
// Do any additional setup after loading the view from its nib.
buttonArray = [[NSMutableArray alloc] initWithCapacity:250];
int i = 0;
int c = 0;
int index = 0;
for (c=0; c < [site columnCount]; c++) {
for (i = 0; i < [site rowCount]; i++) {
plotButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[plotButton addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
CGPoint origin = CGPointMake(60.0, 40.0);
[plotButton setTitle:@"Plot" forState:UIControlStateNormal];
[plotButton setFrame:CGRectMake(origin.x + (90.0 * c), origin.y + (45.0 * i), 90.0, 45.0)];
[plotButton setTag:index];
[buttonArray insertObject:plotButton atIndex:index];
NSLog(@"%d", [plotButton tag]);
index ++;
[[self view] addSubview:plotButton];
}
}
}
这是我的for循环。 idk如果它是愚蠢的嵌套他们,但我正在制作一个按钮网格,这似乎是完成行和列的合理方式。无论如何,谢谢。
添加了异常断点。得到:Catchpoint 2(throw)待定断点1 - “objc_exception_throw”已解决。
答案 0 :(得分:2)
当我用整数替换[site columnCount]和[site rowCount]时,你的代码工作正常。我的猜测是你在这两种方法中遇到问题。
答案 1 :(得分:0)
我猜你调用了[UIButon buttonWithType:...]构造函数然后你发布了按钮... 但我只是在猜测。你应该在这里编写代码以确保。
见到你!