Так что я застрял на этом пару часов, и я не могу понять, почему я не могу это исправить. Я просто пытаюсь получить строковое значение из NSMutableArray, но он возвращается с ошибкой "программа получила сигнал:" EXC_BAD_ACCESS ". Что меня действительно расстраивает, так это то, что я могу успешно вывести объект сразу после добавления объекта в однако массив, когда я позже пытаюсь вызвать его в моем методе buttonClicked, выдает ошибку. Кто-нибудь может увидеть, что я делаю неправильно? Я получаю сообщение об ошибке при первой попытке вывести что-то из массива, где говорит "NSMutableString * tempID = [buttonIDArray objectAtIndex: tempButtonTag];"
- buttonClicked:(id)sender
{
UIButton *selectedButton = (UIButton *)sender;
int tempButtonTag = selectedButton.tag;
NSLog(@"TempbuttonTag is %d", tempButtonTag);
Map *map =[[Map alloc] initWithNibName:nil bundle:nil];
NSMutableString *tempID = [buttonIDArray objectAtIndex:tempButtonTag];
NSMutableString *tempType = [buttonTypeArray objectAtIndex:tempButtonTag];
[map setXmlID:tempID];
[map setXmlType:tempType];
buttonIDArray = nil;
buttonTypeArray = nil;
[self presentModalViewController:map animated:YES];
}
. Вот часть, в которую я добавляю объекты (строки) в массив. Когда я проверяю его здесь, он выдает мне правильное значение из массива ... но позже я получаю ошибку.
if ( [elementName isEqualToString:@"Button"] ) {
buttonViewXvalue = [tempXCorrVariable floatValue];
buttonViewYvalue = [tempYCorrVariable floatValue];
buttonViewWidth = [tempWidthCorrVariable floatValue];
buttonViewLength = [tempLengthCorrVariable floatValue];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[button setTag:buttonTag];
button.frame = CGRectMake(buttonViewXvalue, buttonViewYvalue, buttonViewLength, buttonViewWidth);
NSLog(@"xmlID is %@", xmlID);
NSLog(@"xmlType is %@", xmlType);
[buttonIDArray addObject:xmlID];
[buttonTypeArray addObject:xmlType];
NSMutableString *test = [buttonIDArray objectAtIndex:buttonTag];
NSLog(@"Test is %@", test);
buttonTag++;
[self.view addSubview:button];
button = nil;
currentStringValue = nil;
return;
}