【问题标题】:Reloading tableView when subclassed causing crash子类化导致崩溃时重新加载tableView
【发布时间】:2010-09-29 20:33:24
【问题描述】:

大家好!我有一些问题重新加载我的 tableView。 我将我的 tableView 子类化为一个名为 RadioTable 的类。我还对我的 TableViewCells 进行了子类化,但这在这里并不重要。

我需要指出我很新,并且从一些教程和东西构建了我的子类。

首先,这是我尝试重新加载数据时收到的错误消息。 我正在使用 [self.tableView reloadData] 重新加载它。

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "MainView" nib but didn't get a UITableView.'

好的,所以问题很清楚。视图(我的 nib 文件)没有任何 tableView 连接到文件所有者。这就是我试图解决的问题。我尝试在我的子类中添加一个 IBOutlet,并在那里设置 tableView-property。

(我的 tableView 子类是继承自 UITableView 的,这样就清楚了)

这是我的初始化代码:

- (id)initWithStyle:(UITableViewStyle)style {

 if ((self = [super initWithStyle:style])){
  RadioTable *aTableView = [[RadioTable alloc] initWithFrame:self.tableView.frame style:style];
  [aTableView setDelegate:self];
  [aTableView setDataSource:self];
  [aTableView setSwipeDelegate:self];
  [aTableView setRowHeight:54];

     [self setTableView:aTableView];
        [self.tableView setScrollEnabled:NO];
        [self.tableView setRowHeight:80];
        [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];
        [self.tableView setSeparatorColor:[UIColor lightGrayColor]];
  [aTableView release];

 }

 return self;
}

当我启动应用程序时,tableView 工作正常,它工作完美。但是当我尝试重新加载它时,问题就出现了。

【问题讨论】:

    标签: iphone objective-c crash uitableview reloaddata


    【解决方案1】:

    我不确定这是否能解决您的问题,但不要在其 init 方法中创建视图控制器的视图。相反,覆盖loadView 并在该方法中创建表视图。并将表不仅分配给tableView 属性,还分配给视图控制器的view 属性。

    有关详细信息,请参阅 loadViewviewDidLoad 的文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-10
      • 1970-01-01
      相关资源
      最近更新 更多