2013-04-16 56 views
0

我正面臨新的問題。在我的應用程序中,我通過使用NSXmlParser獲取數據。cellForRowAtIndexPath調用no。那個數組返回的次數,爲什麼?

解析數據後,我手動創建UITableview。

這裏是我的代碼,

-(void) connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
parser = [[NSXMLParser alloc]initWithData:self.cData]; 
parser.delegate = self ; 
[parser parse]; 
tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 20, 320, 460) style:UITableViewStylePlain]; 
tableView.dataSource = self; 
tableView.delegate = self; 

[self.view addSubview:tableView]; 
} 

這是我的委託方法

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
    { 
    return 1; 
    } 
    -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
    { 
    return eventName.count; 
    } 
    -(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath 
    { 

    } 
    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
     { 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (cell == nil) 
    { 
    cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]autorelease]; 

    } 

    for (int i=0; i < eventName.count; i++) 
    { 
     cell.textLabel.text = [eventName objectAtIndex:i]; 
     NSLog(@"%@",cell.textLabel.text); 
    } 
    return cell; 
    } 
+0

那麼,請告訴我你的問題?你不應該在CellForRowAtIndexPath方法中使用循環 –

+0

它會被稱爲第一次你加載表格一個單元格的每一行都必須被創建,沒有什麼錯誤被稱爲event.count時間不使用for循環youu使用 – Bonnie

+0

@all非常感謝幫助... – JDev

回答

3

而是在for loop檢查i,去掉for loop,尋找indexPath.row IN-

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    ... 
    cell.textLabel.text = [eventName objectAtIndex:indexPath.row]; 
    ... 
} 

它將被調用多次返回的值逐

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{}

相關問題