为啥我的项目中出现三个“非法配置”错误?
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】:您可能在项目中错误地连接了标签插座。我假设标签articleURL
、articlePreview
和articleTitle
是在UITableViewCell
中定义的。它们应该连接到对应的customTableViewCell
类而不是UIViewController
中的插座。当您在cellForRowAtIndexPath
中引用self.articleTitles
时,这表明您将它们连接为当前类的插座,而不是customTableViewCell
类。最好将 customTableCell 定义为当前类的属性,该类已实现 UITableView 的 Delegate。
详情请查看TableView Programming。
【讨论】:
outlets在customTableViewCell类中并连接,UIViewController只有一个基本模型和一些starter数据,即self.articleTitles/URLs/previews。 奇怪的是,即使我从 Interface Builder 中删除了所有标签,错误仍然存在...... 您是否尝试过,例如,清理您的项目?或者在您的 xibs(文本)中搜索具有这些名称的其他网点? 为什么总是需要清理? >_以上是关于为啥我的项目中出现三个“非法配置”错误?的主要内容,如果未能解决你的问题,请参考以下文章