Uma extensão UICollectionView para adicionar uma célula em branco rapidamente
May 03 2023
Exemplo de código Swift Código No exemplo acima, se a célula for da classe errada, durante a depuração, uma falha de asserção interromperá o aplicativo. Porém, em Produção, se a célula estiver com a classe errada, uma célula em branco será retornada e o aplicativo continuará rodando.

Exemplo de código Swift
Código
final class FallbackBlankCollectionViewCell: UICollectionViewCell {}
extension UICollectionView {
func blankCell(forIndexPath: IndexPath) -> UICollectionViewCell {
register(FallbackBlankCollectionViewCell.self, forCellWithReuseIdentifier: "FallbackBlankCollectionViewCell")
return dequeueReusableCell(withReuseIdentifier: "FallbackBlankCollectionViewCell", for: forIndexPath)
}
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "LobbyCell", for: indexPath) as? LobbyCell {
return cell
} else {
assertionFailure()
return collectionView.blankCell(forIndexPath: indexPath)
}
}
No exemplo acima, se a célula for da classe errada, ao depurar, uma falha de asserção interromperá o aplicativo. Porém, em Produção, se a célula estiver com a classe errada, será retornada uma célula em branco e o aplicativo continuará rodando.