2011-04-19 5 views
0

사용자가 응용 프로그램에 로그인 한 후 webservice에서 특정 사용자 (그의 프로젝트)에 대한 데이터로 UITableView를 채우려고합니다.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 메소드에 대해 읽었지만 사용자가 로그인하면 테이블을 한 번만로드하는 방법을 잘 모르겠습니다. 누군가가 내게이 프로세스를 올바르게 설명 할 수 있습니까? 당신의 도움에 대한

감사합니다, 마이클

답변

0

있는 tableView에 대한 데이터를 사용할 수있을 때 콜백 방법의 일종이 있어야한다. reloadData를 그 안에 넣기 만하면됩니다. 답변에 대한

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

    [self.tableView reloadData]; 
} 
+0

덕분에, 나는 데이터를 사용할 수있는 경우에 대한 콜백 방법이 없습니다 그래서이 시간에, 내가 동기 요청을 사용하고 있기 때문에, 내가 서버에서 데이터를 얻을 방법을 재고 할 필요가있다. – Themikebe

+0

아 [ASIHTTP 프레임 워크] (http://allseeing-i.com/ASIHTTPRequest/)로 이동해야하며 사용하기가 매우 쉽습니다. 요청이 실패하거나 성공할 때 호출되는 일부 대리자 메서드를 구현하기 만하면됩니다. 이 경우 reloadData는 ASI 용어로 - (void) requestFinished : (ASIHTTPRequest *) request' 대리자 메소드로 이동합니다. –

+0

고마워요, 이미이 프레임 워크를 사용하고 있습니다 :-) 내가 고민하고있는 지점이 있습니다. 사용자가 로그인 한 후에 요청을 시작하는 방법입니다 (데이터를 얻으려면 ID가 필요합니다). 사용자가 로그인 한 직후에 데이터를 가져 오더라도 어떻게 내 tableView에 전달합니까? – Themikebe

관련 문제