带有 UICollectionView 的 xib - 不符合键值编码

Raj*_*tia 5 xib uiview ios uicollectionview swift

我有一个UIView带有 XIB的自定义。此自定义UIView具有UICollectionView连接到IBOutlet. 在视图设置中,UICollectionView已正确初始化并且不为零。

但是在该cellForItemAtIndexPath方法中,我收到此错误:-

由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[ setValue:forUndefinedKey:]: 此类与键 selectorCollectionView 的键值编码不兼容。”

如果我删除数据源和委托,我不会收到任何错误。如果我添加它们,我会在这一行出现错误:-

let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "selectorCell", for: indexPath) as! SelectorCell
Run Code Online (Sandbox Code Playgroud)

请帮忙!

编辑:我附上了我的设置截图

自定义视图添加到 UITableViewCell

自定义视图有这个 collectionview

我已经为单元格设置了类

和标识符

我也在这里上传了项目http://www.fast-files.com/getfile.aspx?file=148623

Dan*_*elH 5

也许是同步问题。有时会发生:

  1. 尝试将插座剪断并重新连接。

  2. 确保 Collection Reusable View 标识符在 xib 文件中定义: 在此设置标识符

  3. 确保集合视图单元格的自定义类在 xib 文件中定义:

在这里设置自定义类

编辑: 我深入研究了你的项目,这是我的发现

UICollectionView 应该在awakeFromNib方法中 init' (覆盖它):

override func awakeFromNib() {
    super.awakeFromNib()
    let cellNib = UINib(nibName: String(describing: "SelectorCell"), bundle: nil)
    selectorCollectionView.register(cellNib, forCellWithReuseIdentifier: "selectorCell")
    selectorCollectionView.dataSource = self
    selectorCollectionView.delegate = self
}
Run Code Online (Sandbox Code Playgroud)

loadViewFromNib 应该看起来像这样(删除集合视图 init'):

func loadViewFromNib() -> UIView {
    let nib = UINib(nibName: "SelectorView", bundle: nil)
    let view = nib.instantiate(withOwner: self, options: nil).first as! UIView
    return view
}
Run Code Online (Sandbox Code Playgroud)

同样子类化 SelectorTableViewCell。

class SelectorTableViewCell: UITableViewCell {
    @IBOutlet weak var selectorView: SelectorView!
}
Run Code Online (Sandbox Code Playgroud)

In Main.storyboard- 自定义类UITableViewCell并在内部SelectorTableViewCell连接到“SelectorTableViewCell”的插座。SelectorViewcontentView

我想就是这样。是该项目: