2015-02-12 11 views
0
static NSString *timeStr = @"MessageCellTime"; 
if (indexPath.row < [self.dataSource count]) { 
    id obj = [self.dataSource objectAtIndex:indexPath.row]; 
    if ([obj isKindOfClass:[NSString class]]) { 
     EMChatTimeCell *timeCell = (EMChatTimeCell*)[tableView dequeueReusableCellWithIdentifier:timeStr]; 
     if (timeCell == nil) { 
      timeCell = [[EMChatTimeCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:timeStr]; 
      timeCell.backgroundColor = [UIColor clearColor]; 
      timeCell.selectionStyle = UITableViewCellSelectionStyleNone; 
     } 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      timeCell.textLabel.text = (NSString*)obj; 

     }); 
     //timeCell.textLabel.text = (NSString*)obj; 

     return timeCell; 
    } 
    else 
    { 
     MessageModel *model = (MessageModel*)obj; 
     NSString *cellIndentifier = [EMChatViewCell cellIdentifierForMessageModel:model]; 
     EMChatViewCell *cell = (EMChatViewCell*)[tableView dequeueReusableCellWithIdentifier:cellIndentifier]; 
     if (cell == nil) { 
      cell = [[EMChatViewCell alloc]initWithMessageModel:model reuseIdentifier:cellIndentifier]; 
      cell.backgroundColor = [UIColor clearColor]; 
      cell.selectionStyle = UITableViewCellSelectionStyleNone; 
     } 
    return cell; 

ARC разрешен. Их ViewController является callallall, поскольку я pop back, но мой customCell, такой как EMChatTimecell и EMChatViewCell, не назвал его dealloc, спасибо мне помочь.Почему мой пользовательский UITableviewCell не может назвать dealloc?

ответ

0

Это, как правило, проблема, когда у вас сильный опорный цикл. Одна из возможностей может заключаться в том, что ваши объекты делегата или dataSource объявляются сильными, а не слабыми. Прочтите это ->Apple memory management guide. Даже при использовании дуги вы должны иметь справедливое представление об управлении памятью, это помогает в сложных ситуациях, таких как сильные ссылочные циклы.

+0

Спасибо вам. Я знаю, что моя ячейка не деллалос, возможно, причина, о которой вы говорили. Но я просто не могу найти, где это произойдет. –

+0

Можете ли вы опубликовать код, в котором вы указали делегат и источник данных? Или какой-нибудь другой код, который может быть полезен. Другими случаями могут быть случаи, когда вы захватываете себя в блоке. Поместите некоторый код для более точного ответа. – jarora

+0

Из-за кода много, я меняю страницу, пожалуйста, нажмите здесь. Спасибо. –

Смежные вопросы