#iphone #ios4 #uitableview
#iPhone #ios4 #uitableview
Вопрос:
Мой первый сбой программы IOS при попытке использовать мой пользовательский TableCellView.
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath {
AuthorizeTableCell *cell = (AuthorizeTableCell*) [tableView dequeueReusableCellWithIdentifier:@"AuthorizeCell"];
if (cell == nil) {
cell = [[[NSBundle mainBundle] loadNibNamed: @"AuthorizeTableCell" owner:self options:nil] objectAtIndex:0 ];
}
cell.batchIDLabel.text = [[self.authorizeList objectAtIndex:indexPath.row] valueForKey:@"batchID"];
cell.amountIDLabel.text = [NSString stringWithFormat:@"%@", [[self.authorizeList objectAtIndex:indexPath.row] valueForKey:@"amount"]] ;
return cell;
}
Класс AuthorizeTableCell содержит только 2 метки и 1 кнопку в TableCellView. я должен убедиться, что 3 компонента были освобождены в классе. Программа запускается корректно, если я использую стандартный TableCellView. Может кто-нибудь дать мне несколько советов?
спасибо за крышку
Комментарии:
1. Какие ошибки в терминале журнала? можете ли вы опубликовать трассировку стека? Из приведенного выше кода все выглядит нормально
2. Какой родительский класс вашей пользовательской ячейки? UITableViewCell?
3. я включаю NSZombieEnabled = YES, и консоль показывает *** -[CALayer retain]: сообщение отправлено освобожденному экземпляру
4. @interface AuthorizeTableCell: UITableViewCell
5. Затем прокомментируйте все выпуски в пользовательских ячейках dealloc…
Ответ №1:
Извините, что я запустил неправильную команду в освобождении пользовательских ячеек
-void dealloc {
[component1 dealloc];
[component2 dealloc];
[component3 dealloc];
[super dealloc];
}
после того, как я изменил его на ‘release’, он работает нормально ^_^
спасибо