Я создаю приложение iPad с разделенным видом.Когда пользователь нажимает элемент панели кнопок в главном представлении, отображается модальный режим.Этот модал имеет текстовое поле и имеет IBAction для получения возвратов с клавиатуры.
При возврате с клавиатуры создается новый экземпляр моего класса Farm
(код ниже).Этот экземпляр затем добавляется в массив, который хранится в моем делегате.Затем я пытаюсь перезагрузить таблицу MasterViewController
.После этой перезагрузки приложение вылетает на cell.textLabel.text
с ошибкой EXC_BAD_ACCESS
.
Farm *current = [delegate.arrayOfFarms objectAtIndex:indexPath.row];
cell.textLabel.text = [current getFarmTitle];
Если я спрашиваю массив в делегате, сколько у него элементов, оно действительно покажет текущую сумму, даже.Это то, что странно для меня во всем этом: экземпляры Фермы, кажется, существуют.
У меня есть экземпляры AppDelegate как в моих MasterViewController
, так и в моих NewFarmNamingView
классах.Экземпляр в Master должен заполнить таблицу.Экземпляр в NewFarm должен добавить недавно созданный Farm
к делегату.Код ниже.
Сегменты из класса NewFarmNamingView:
- (IBAction) keyboardDonePushed:(id)sender
{
// create a Farm and add it to the delegate
NSString *text = newFarmTextField.text;
Farm *newFarm = [[Farm alloc] init];
[newFarm setFarmTitle:text];
[[delegate arrayOfFarms] addObject:newFarm];
[newFarm release];
NSLog(@"Added farm: %@" , text);
// dismiss the view
[self closeView:nil];
}
- (void)viewDidLoad
{
[super viewDidLoad];
// initialize the delegate
delegate = [[UIApplication sharedApplication] delegate];
}
Сегменты из класса Farm
- (void) setFarmTitle : (NSString *) _farmTitle
{
farmTitle = _farmTitle;
}
- (NSString *) getFarmTitle
{
return farmTitle;
}
// NSCoding Methods
- (void) encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:farmTitle forKey:@"kFarmTitle"];
}
- (id) initWithCoder:(NSCoder *)aDecoder
{
farmTitle = [aDecoder decodeObjectForKey:@"kFarmTitle"];
return self;
}
// Initialization method
- (id)init
{
self = [super init];
if (self) {
// Initialization code here.
}
return self;
}