У меня есть UITableView, который отображает различные строки из пользовательского объекта, называемого «Транзакция». в CellForRowAtIndexPath он выделяет новый экземпляр транзакции, а затем копирует значения из конкретной транзакции, которая находится в массиве делегатов, чтобы я мог получить к нему доступ из разных представлений. Затем он использует новую транзакцию 'copy' и ее свойства для заполнения ячейки таблицы. Проблема в том, что я освобождаю скопированный объект транзакции при повторном отображении таблицы, в которой происходит сбой приложения. если я закомментирую релиз, программа будет работать хорошо, но я, очевидно, беспокоюсь об управлении памятью. Мой вопрос: какого черта я должен делать, есть ли другое место, чтобы выпустить это?
Вот код:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"TransCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Set up the cell...
NSUInteger row = [indexPath row];
CashAppDelegate *mainDelegate = [(CashAppDelegate *) [UIApplication sharedApplication] delegate];
Transaction *cellTrans = [[Transaction alloc] init];
cellTrans = [mainDelegate.transactionArray objectAtIndex:row];
NSString *string = [NSString stringWithFormat:@"$%1.2f %@ | %@", cellTrans.amount, cellTrans.category, cellTrans.descriptionString];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
cell.text = string;
//[cellTrans release];
return cell;
}