У меня есть несколько кнопок в моем приложении, которые создаются динамически. Все они указывают на событие нажатия кнопки при нажатии. Когда вызывается метод с нажатой кнопкой, тег отправителя (значение int) анализируется в ID дома контроллера. Он работает с одной из кнопок - первой, созданной, если быть точным, - но другие выдают следующую ошибку:
-[CFNumber intValue]: message sent to deallocated instance 0xc4bb0ff0
Я не отпускаю эти кнопки в моем коде. Я не настроил их на автоматический выпуск или что-то в этом роде. Мне просто интересно, почему они делают это на клике.
Событие нажатия кнопки:
- (IBAction) ButtonClick: (id) sender
{
HouseholdViewController *controller = [[HouseholdViewController alloc] initWithNibName:@"HouseholdViewController" bundle:nil];
controller.delegate = self;
controller.HouseID = [(NSInteger)[(UIButton *)sender tag] intValue]; //this line throws an error
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];
[controller release];
}
Где я создаю кнопки:
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(MyLongInScreenCoords, MyLatInScreenCoords, 50, 50);
UIImage *buttonImageNormal = [UIImage imageNamed:@"blue_pin.png"];
UIImage *strechableButtonImageNormal = [buttonImageNormal stretchableImageWithLeftCapWidth:50 topCapHeight:50];
[button setBackgroundImage:strechableButtonImageNormal forState:UIControlStateNormal];
[self.view addSubview:button];
button.tag = [NSNumber numberWithInt:[[words objectAtIndex: i] intValue]];
ButtonPoints[CurrentHouseCount][0] = button;
ButtonPoints[CurrentHouseCount][1] = [NSValue valueWithCGPoint:CGPointMake(MyActualLat, MyActualLong)];
[button addTarget:self action:@selector(ButtonClick:) forControlEvents:UIControlEventTouchUpInside];
CurrentHouseCount++;