0

我面临新问题。在我的应用程序中,我使用 NSXmlParser 获取数据。

解析数据后,我手动创建 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;
  }
4

1 回答 1

3

而不是签ifor loop,删除for loop并寻找indexPath.rowin-

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

它将被调用的次数与返回的值一样多 -

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

于 2013-04-16T09:35:44.697 回答