ios - 该类与键 tableView 的键值编码不兼容

标签 ios objective-c uitableview

在 StoryBoard 中,我有一个场景包含一些 TextFields、按钮和一个 UITableView。在头文件中声明了 UITableView 的一个实例,但是当我尝试访问方法“cellForRowAtIndexPath”时,我收到以下错误

this class is not key value coding-compliant for the key tableView.

我用谷歌搜索了那个错误,一些结果表明它是关于将 DataSource 和 Delegate 属性链接到 ViewController,但我仍然收到相同的错误

请让我知道如何修复此错误。

代码-1:

 -(UITableViewCell *) tableView:(UITableView *)tableView    
 cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {
  NSLog(@"cellForRowAtIndexPath");
   NSString *cellIdentifier = @"cellId";

   UITableViewCell *cell = [tableView1    
   dequeueReusableCellWithIdentifier:cellIdentifier 
   forIndexPath:indexPath];

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

   //[cell.textLabel setText: [dataArray 
   objectAtIndex:indexPath.row]];

  if (textFieldRowNameAsString != nil)
    cell.textLabel.text = textFieldRowNameAsString;

 return cell;

 }

代码 2:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController <UITableViewDelegate,   
UITableViewDataSource>
{
NSString *textFieldRowNameAsString;
UITableView *tableView1;
UITableViewCell *prototypeCell;
UIView *contentView;

}

image-1:

enter image description here

最佳答案

你可以避免这个错误,如果你

在所有 TableView 数据源和委托(delegate)方法中始终使用传递的 tableView 实例

而且您不需要检查单元格是否为 nil,因为此 dequeueReusable 方法始终返回有效的单元格。

由于单元格被重复使用,因此强烈建议始终将所有 UI 元素设置为已定义的状态。

-(UITableViewCell *) tableView:(UITableView *)tableView    
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {
      NSString *cellIdentifier = @"cellId";

      UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];

      if (textFieldRowNameAsString != nil) {
         cell.textLabel.text = textFieldRowNameAsString;
      } else {
         cell.textLabel.text = ""
      }

     return cell;
 }

PS:如果您想要自定义 TableView 变量/属性,您必须创建一个 IBOutlet 并将 TableView 连接到它。一个简单的属性是不够的。

关于ios - 该类与键 tableView 的键值编码不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44677128/

相关文章:

ios - 使用 Alamofire 在 Swift 中调用 Api?

ios - Google map 集成 iOS 1.9.0 问题

ios - 如何删除 iOS 7 中的分隔线?

javascript - 如何在Xcode项目中包含jquery库?

objective-c - 替换 SplitViewController 中的 TableView

ios - UITableView - 通过点击现有单元格插入新行

ios - 通过 subview 移动一个正方形

ios - 个人热点 Swift 的多点连接

ios - Indexpath.row重复导致间歇性索引超出范围错误

swift - 不正确的 UITableViewCell 高度 UIImageView