2012-11-09 57 views
0
加载TableViewCell当

我想从NIB加载TableViewCell所以IssueTableCell.xib和我的代码是在这里:异常来自NIB

static NSString *issueTableCellId = @"IssueTableCell"; 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:issueTableCellId]; 
NSInteger index = indexPath.row; 

NSDictionary *d = [data objectAtIndex:indexPath.row]; 

UILabel *titleLabel = (UILabel *)[cell viewWithTag:101]; 
titleLabel.text= [d objectForKey:@"Name"]; 


UIImageView *imageView = (UIImageView *)[cell viewWithTag:100]; 
imageView.image=nil; 

[self setCoverOfIssueAtIndex:index completionBlock:^(UIImage *img) { 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     UITableViewCell *cell = [table_ cellForRowAtIndexPath:[NSIndexPath indexPathForRow:indexPath.row inSection:0]]; 
     UIImageView *imageView = (UIImageView *)[cell viewWithTag:100]; 
     imageView.image=img; 
    }); 
}]; 

NKLibrary *nkLib = [NKLibrary sharedLibrary]; 
NKIssue *nkIssue = [nkLib issueWithName:[self nameOfIssueAtIndex:index]]; 
UIProgressView *downloadProgress = (UIProgressView *)[cell viewWithTag:102]; 
UILabel *tapLabel = (UILabel *)[cell viewWithTag:103]; 
if(nkIssue.status==NKIssueContentStatusAvailable) { 
    [email protected]"TAP TO READ"; 
    tapLabel.alpha=1.0; 
    downloadProgress.alpha=0.0; 
} else { 
    if(nkIssue.status==NKIssueContentStatusDownloading) { 
     downloadProgress.alpha=1.0; 
     tapLabel.alpha=0.0; 
    } else { 
     downloadProgress.alpha=0.0; 
     tapLabel.alpha=1.0; 
     [email protected]"TAP TO DOWNLOAD"; 
    } 

} 
return cell; } 

和我的例外是

UITableView的数据源必须返回一个细胞tableView:cellForRowAtIndexPath

哪里出错?

回答

0

的错误出现,因为编译器无法找到reuseidentifier &这意味着你的细胞是零

也保持reuseidentifier适当所以编译器可以重复使用。

你应该dequeueReusableCellWithIdentifier后试试这个:

你必须检查零,如果电池是零,然后创建新的细胞 这样的:

如果(细胞==零)

{

//这里创建新的细胞...

}

+0

我尝试了但仍然发生异常:( –

相关问题