【发布时间】:2014-12-23 00:21:52
【问题描述】:
我正在开发某种聊天 iphone 应用程序,但我遇到了一个我无法解决的问题。
我看到了几个答案,但似乎没有一个能在我所拥有的上下文中解决这个问题。
我使用 TableView 来显示消息,当我不时滚动时,单元格会消失。我必须返回父视图(导航控制器用于推送我的聊天视图的视图),然后返回聊天视图以查看单元格。
我有以下方法:
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath {
// static NSString* CellIdentifier = @"MessageCellIdentifier";
// MessageTableViewCell* cell = (MessageTableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
//if (cell == nil){
MessageTableViewCell* cell = [[[MessageTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil] autorelease];
SharethingsAppDelegate *delegate = (SharethingsAppDelegate *)[[UIApplication sharedApplication] delegate];
ChatMessage* message = [[delegate.dataModel getMessagesOfChatWithID:self.chatID] objectAtIndex:indexPath.row];
[cell setMessage:message];
//}
return cell;
}
我试图保持测试“cell == nil”但同样的事情。
我想这是某种细胞重复使用问题,但是......无法真正弄清楚它到底是什么。
有什么想法吗?
【问题讨论】:
-
代码看起来不错,所以我不太确定发生了什么。当消息消失时,您是否检查过
message仍然以非nil的形式返回?另外,您的tableView:numberOfRowsInSection:是否有可能开始返回0? -
@mattjgalloway 实际上我可以看到行(我使用自定义视图单元格),但内容是空的。我会添加更多日志并随时通知您。谢谢。
-
哦,如果内容为空,那么可能
message是nil或者您的自定义单元格没有正确响应setMessage:并相应地重绘自身。尽管怀疑后者,因为您目前每次都在创建新单元格。
标签: ios uitableview