我有一个应用程序,其中包含一个UITableView。这个UITableView是由在appDelegate中作为属性持有的NSMutableArray填充的。你可以把它看做是一个邮件窗口。它列出了一些子类化的UITableViewCell中的消息。当出现新消息时,我已经完成了所有代码,它会下载消息,将数据添加到appDelegate的NSMutableArray中,该数组保存所有消息。这段代码运行良好。
现在,一旦新信息被下载并添加到数组中,我尝试使用以下代码更新我的UITableView,但是UITableView的委托方法没有被调用。
奇怪的是,当我上下滚动UITableView时,委托方法最终被调用,并且我的区域标题确实更改了(它们显示该部分的消息计数)。它们不应该实时更新而不是等待我的滚动来触发刷新吗?此外,新单元格也从未添加到区域中!
请帮忙!!
APPDELEGATE CODE:
现在,一旦新信息被下载并添加到数组中,我尝试使用以下代码更新我的UITableView,但是UITableView的委托方法没有被调用。
奇怪的是,当我上下滚动UITableView时,委托方法最终被调用,并且我的区域标题确实更改了(它们显示该部分的消息计数)。它们不应该实时更新而不是等待我的滚动来触发刷新吗?此外,新单元格也从未添加到区域中!
请帮忙!!
APPDELEGATE CODE:
[self refreshMessagesDisplay]; //This is a call placed in the msg download method
-(void)refreshMessagesDisplay{
[self performSelectorOnMainThread:@selector(performMessageDisplay) withObject:nil waitUntilDone:NO];
}
-(void)performMessageDisplay{
[myMessagesView refresh];
}
UITableViewController 代码:
-(void) refresh{
iPhone_PNPAppDelegate *mainDelegate = (iPhone_PNPAppDelegate *)[[UIApplication sharedApplication] delegate];
//self.messages is copied from appDelegate to get (old and) new messages.
self.messages=mainDelegate.messages;
//Some array manipulation takes place here.
[theTable reloadData];
[theTable setNeedsLayout]; //added out of desperation
[theTable setNeedsDisplay]; //added out of desperation
}