У меня есть приложение, которое имеет UITableView. Этот UITableView заполняется NSMutableArray, хранящимся (как свойство) в appDelegate. Вы можете думать об этом как о окне электронной почты. Он перечисляет сообщения в подклассе UITableViewCell. Когда появляется новое сообщение, у меня есть весь код, который загружает сообщение, добавляет данные в NSMutableArray appDelegate, который содержит все сообщения. Этот код работает нормально.
Теперь, когда новое сообщение загружено и добавлено в массив, я пытаюсь обновить свой UITableView, используя следующий код, однако - функции делегата UITableView не вызываются.
Странно то, что когда я прокручиваю свой UITableView вверх и вниз, методы делегата наконец-то вызываются, и заголовки моего раздела меняются (они показывают количество сообщений для этого раздела). Разве они не обновляются в режиме реального времени и не ждут, пока моя прокрутка вызовет обновление? Также новая ячейка никогда не добавляется в раздел !!
Пожалуйста, помогите !!
КОД APPDELEGATE:
[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
}