开发者

Load more cells "willDisplayCell" Problem

开发者 https://www.devze.com 2023-04-04 08:37 出处:网络
i have a problem with willDisplayCell it doesn\'t stop fetch Xml from the url my code: - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

i have a problem with willDisplayCell it doesn't stop fetch Xml from the url my code:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return [itemsToDisplay count] + 1;
}


- (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];
}


if (indexPath.row == [itemsToDisplay count]) {
    cell.textLabel.text = @"Load More...";


} else {
   开发者_JAVA技巧 MWFeedItem *item = [itemsToDisplay objectAtIndex:indexPath.row];
    cell.textLabel.text = item.title;
}

    return cell;
}




- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
 {
      if (indexPath.row == [itemsToDisplay count]) {

    // Parse
    NSURL *feedURL = [NSURL URLWithString:@"http://gdata.youtube.com/feeds/api/users/RayWilliamJohnson/uploads?v=2&alt=rss&sort_field=added&start-index=21&max-results=20"];
    feedParser = [[MWFeedParser alloc] initWithFeedURL:feedURL];
    feedParser.delegate = self;
    feedParser.feedParseType = ParseTypeFull; // Parse feed info and all items
    feedParser.connectionType = ConnectionTypeAsynchronously;
    [feedParser parse];



    [self.tableView reloadData];
}    
}

its look like he is in kind of loop that doesnt stop fetch xml

so how can i fix it so i will only called once?

tnx


The problem is that you have called reloadData within tableView:willDisplayCell:. reloadData will cause every UITableViewCell to get drawn again, means willDisplayCell will get called for every cell that will be visible on screen. Seems to me like you have an infinite loop there.

tableView:willDisplayCell: is definitely the wrong place to be doing that XML parsing. willDisplayCell should just be used to prepare the UI. I can't say for certain, but perhaps a better place to the XML parsing would be in your view controller's init method.

0

精彩评论

暂无评论...
验证码 换一张
取 消