0
我想从用户登录到应用程序后,从web服务中为特定用户(他的项目)填充UITableView的数据。从web服务获取用户特定的数据来填充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方法,但我不知道如何继续加载表只有一次,一旦用户登录。有人可以向我解释什么是正确的过程呢?
感谢您的帮助, 迈克尔
感谢您的回答,我需要重新考虑从服务器获取数据的方式,因为目前我使用的是同步请求,所以在数据可用时没有回调方法。 – Themikebe 2011-04-19 08:38:55
啊,你应该前往[ASIHTTP框架](http://allseeing-i.com/ASIHTTPRequest/),非常容易使用。只需实现一些在请求失败或成功时调用的委托方法。在这种情况下,reloadData将以ASI术语' - (void)requestFinished:(ASIHTTPRequest *)request'委托方法进入。 – 2011-04-19 08:42:51
谢谢,我已经在使用这个框架:-) 我还在挣扎的一点是,一旦用户登录(我需要他的ID来获取他的数据),如何触发请求。 即使我刚刚在用户登录后获取数据,我如何将它传递给我的tableView? – Themikebe 2011-04-19 08:58:46