получение пользовательских данных из веб-сервиса для заполнения UITableView - PullRequest
0 голосов
/ 19 апреля 2011

Я пытаюсь заполнить UITableView данными для определенного пользователя (его проектов) из веб-службы после того, как пользователь вошел в приложение.

, например:

tableData = [[NSMutableDictionary alloc] initWithCapacity:DICTIONARY_INITIAL_CAPACITY];
//CURRENT PROJECT
 //get the information from the server
 NSArray *currentProject = [[IHMObjectFinderServices sharedIHMObjectFinderServices]     getCurrentProjectAsArray:connectedUserId];
 if(![currentProject isEqual:[NSNull null]]) {
     //put the info in a dictionnary
     NSMutableDictionary *currentProjectDictionary = [[NSMutableDictionary alloc] initWithCapacity:PROJECT_DICTIONARY_CAPACITY];
     [currentProjectDictionary setObject:[currentProject objectAtIndex:INDEX_PROJECT_NAME] forKey:KEY_PROJECT_NAME];
     [currentProjectDictionary setObject:[currentProject objectAtIndex:INDEX_PROJECT_MANAGER] forKey:KEY_PROJECT_MANAGER];
     [currentProjectDictionary setObject:[currentProject objectAtIndex:INDEX_PROJECT_TAG] forKey:KEY_PROJECT_TAG];
     NSArray *activitiesForProject = [NSArray arrayWithArray:[[IHMObjectFinderServices sharedIHMObjectFinderServices] getAvailableActivities:[currentProjectDictionary valueForKey:KEY_PROJECT_TAG]]];
     [currentProjectDictionary setObject:activitiesForProject forKey:KEY_PROJECT_ACTIVITIES];

     [tableData setObject:currentProjectDictionary forKey:KEY_CURRENT_PROJECT];

В данный момент моя таблица загружается в методе viewDidLoad, поэтому проблема в том, что пользователь еще не подключен при создании таблицы.

Я читал о методе reloadData, но я не уверен, как поступитьзагрузить таблицу только один раз, как только пользователь вошел в систему. Может ли кто-нибудь объяснить мне, какова правильная процедура для этого?

Спасибо за вашу помощь, Майкл

1 Ответ

0 голосов
/ 19 апреля 2011

Должен быть какой-то метод обратного вызова, когда доступны данные для tableView. Просто поместите в него свои данные reloadData.

- (void)dataIsAvailable
{
     // ... your code to set the tableData ...

     [self.tableView reloadData];
}
...