cellForRowAtIndexPath名为no。数组计数返回的次数,为什么?

时间:2013-04-16 09:25:27

标签: objective-c uitableview nsarray

我正面临新问题。在我的应用中,我使用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;
  }

1 个答案:

答案 0 :(得分:3)

不是检查i中的for loop,而是删除for loop并查找indexPath.row -

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

它将被调用为 -

返回的值的次数

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