为啥我的项目中出现三个“非法配置”错误?

Posted

技术标签:

【中文标题】为啥我的项目中出现三个“非法配置”错误?【英文标题】:Why am I getting three "Illegal Configuration" errors within my project?为什么我的项目中出现三个“非法配置”错误? 【发布时间】:2013-03-18 22:26:29 【问题描述】:

我有一个项目,其中我在自定义单元格原型类(UITableViewCell 的子类)中有三个标签,它们链接到自定义单元格的 .h 文件中的三个标签出口。

然后在我的主视图控制器类(它包含原型单元并且是 UITableViewController 的子类)中,与这些标签交互的委托方法如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    static NSString *CellIdentifier = @"ArticleCell";
    ArticleCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    int row = indexPath.row;

    cell.articleTitle.text = self.articleTitles[row];
    cell.articleURL.text = self.articleURLs[row];
    cell.articlePreview.text = self.articleURLs[row];

    return cell;

但我得到这三个错误:

Connection "articleURL" cannot have a prototype object as its destination.
Connection "articlePreview" cannot have a prototype object as its destination.
Connection "articleTitle" cannot have a prototype object as its destination.

我到底做错了什么?我很困惑。

【问题讨论】:

这正是错误消息告诉您的内容。您不能将 UITableViewController 的属性链接到单元格中的视图。这是因为一次可能有多个单元实例。 (框架不会知道你是否只计划一个)。将视图连接到自定义 UITableViewCell 子类中的出口,该子类可能将 TableView 或 TableViewController 作为委托,并通过调用控制器中的方法来传递信息。听起来很复杂,但相当直接。虽然,我也不喜欢。 :) 【参考方案1】:

您可能在项目中错误地连接了标签插座。我假设标签articleURLarticlePreviewarticleTitle 是在UITableViewCell 中定义的。它们应该连接到对应的customTableViewCell 类而不是UIViewController 中的插座。当您在cellForRowAtIndexPath 中引用self.articleTitles 时,这表明您将它们连接为当前类的插座,而不是customTableViewCell 类。最好将 customTableCell 定义为当前类的属性,该类已实现 UITableView 的 Delegate。

详情请查看TableView Programming。

【讨论】:

outlets在customTableViewCell类中并连接,UIViewController只有一个基本模型和一些starter数据,即self.articleTitles/URLs/previews。 奇怪的是,即使我从 Interface Builder 中删除了所有标签,错误仍然存​​在...... 您是否尝试过,例如,清理您的项目?或者在您的 xibs(文本)中搜索具有这些名称的其他网点? 为什么总是需要清理? >_

以上是关于为啥我的项目中出现三个“非法配置”错误?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在使用 Typescript 的 .net 核心项目中的 NPM 模块出现此错误?

为啥我的 Laravel 模块中出现“找不到类”错误?

我的vs.net为啥总是无法启动调试?

为啥我的夹具没有安装在 django 项目上?

非法配置错误xcode6,我可以禁用它吗?

为啥会出现此资源找不到错误消息?