CoreData:如何将获取的数据显示到 UIcollectionView Cell

CoreData: How to display fetched data to UIcollectionView Cell

目前我有这个 loadCharacters 函数

    var characterArray = [Character]()

    func loadCharacters(with request: NSFetchRequest<Character> = Character.fetchRequest()) {
        
        do {
            characterArray = try context.fetch(request)
        } catch {
            print("error loading data")
        }        
        collectionView.reloadData()
    }

我的问题是:如何将获取的数据从那里传递到我的子类 CharacterCollectionViewCell 并稍后将此单元格用于我的

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath)
 -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "characterCell",
 for: indexPath) as! CharacterCollectionViewCell { 
    ... 
}

非常感谢任何建议或更好的方法来使其发挥作用!!

只需要获取indexPath.item对应的characterArray元素,用它传入单元格即可。

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath)
 -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "characterCell",
 for: indexPath) as! CharacterCollectionViewCell { 
        cell.someLabel.text = characterArray[indexPath.item]
        //...
        return cell
}

如果要传递的数据太多,最好创建一个模型并使用它的实例将数据传递到单元格。因此,为此首先创建一个模型。

struct CharacterCellModel { // all properties... }

然后在你的UIViewController分class.

var characterCellModels = [CharacterCellModel]() // append this model

最后在 cellForItemAt:

cell.characterCellModel = characterCellModels[indexPath.item]