【问题标题】:'Outlets cannot be connected to repeating content' in subclass of UICollectionViewCellUICollectionViewCell 子类中的“插座无法连接到重复内容”
【发布时间】:2018-08-12 11:42:12
【问题描述】:

Xcode 9.2,Swift 4。对于 Collection View Controller 中的单元格,我创建了一个名为 CollectionViewController 的子类。我将单元格链接到这个子类。我在 Main.storyboard 的单元格中创建了一个标签,并将其链接到子类,如下所示:

class CollectionViewCell: UICollectionViewCell {
   @IBOutlet weak var personName: UILabel!
}

然后我尝试在我的 CollectionViewController 类(UICollectionViewController 的子类)中的 collectionView 函数中访问此标签,它链接到我的单元所在的 Collection View Controller:

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! CollectionViewCell
    cell.personName.text = "text"
    return cell
}

这就是我遇到此错误的原因:“从 UICollectionView 到 UILabel 的 personName 插座无效。插座无法连接到重复内容。”

【问题讨论】:

  • 你的意思是运行时崩溃或者编译错误???
  • 你注册了一个小区吗?
  • 您的标题中的错误与您问题其余部分中的描述不一致。当您尝试将单元格中的对象连接到视图控制器中的插座时,界面生成器中会出现标题中的错误。
  • @yerpy - 他在谈论 IBOutlets,这意味着他在谈论他的故事板场景中的一个单元格。这意味着不需要注册。您只需为情节提要中的单元格设置基类。
  • @Rob 哦,是的,你是对的!

标签: ios swift uicollectionview


【解决方案1】:

解决方案:从视图控制器

请移除colllectionviewcell的IBoutlet

。该问题提到您的 IBOutlet 无效。所以删除所有具有多出口(无效)的子类并重新连接。

The answer is already mentioned in another question

【讨论】:

    【解决方案2】:

    类似错误情况的补充说明:

    在我收到的错误消息中,除了与上面类似的消息之外,Xcode(ver 12.0) 还提供了Object ID,我在Identity Inspector tab 中提到了它以消除错误原因。

    【讨论】:

      【解决方案3】:

      我建议您仔细检查该控件(以及该单元格内的任何其他控件)的“连接检查器”(右侧面板上的最后一个选项卡)。听起来单元格中的某些东西有一个连接到视图控制器的挥之不去的出口。连接检查器将帮助您确定:

      确保视图控制器不显示为出口之一。在上面的例子中,我“不小心”为这个标签创建了两个出口,一个到单元子类(这是正确的),一个到视图控制器(这是不正确的)。

      这将导致编译时错误:

      错误:从 ViewController 到 UILabel 的 customLabel 出口无效。插座不能连接到重复的内容。

      如果您删除单元和视图控制器(或它所连接的任何非单元类)之间的出口连接,则此编译时错误将消失。

      请注意,“Outlets cannot be connected to repeating content”消息之前的句子将准确地告诉您是哪个插座导致了问题。您甚至可以在左侧面板的“问题导航器”中单击此错误,Xcode 将跳转到情节提要并选择有问题的控件(此时您可以直接打开连接检查器)并找到有问题的出口。

      【讨论】:

      • 原来如此,感谢您的回答和详细的解释!错误前的那句话是“从 UICollectionView 到 UILabel 的 personName 出口无效”。不知道我可以点击它,很好的提示,再次感谢!
      猜你喜欢
      • 1970-01-01
      • 2014-12-21
      • 2015-10-11
      • 2015-01-24
      • 2015-07-12
      • 2017-06-08
      • 2018-02-04
      • 2021-04-08
      相关资源
      最近更新 更多