Rozszerzenie UICollectionView do szybkiego dodawania pustej komórki
May 03 2023
Przykładowy kod Swift Kod W powyższym przykładzie, jeśli komórka ma niewłaściwą klasę, podczas debugowania niepowodzenie potwierdzenia spowoduje zatrzymanie aplikacji. Jednak w środowisku produkcyjnym, jeśli komórka ma niewłaściwą klasę, zostanie zwrócona pusta komórka, a aplikacja będzie nadal działać.

Próbka kodu Swift
Kod
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)
}
}
W powyższym przykładzie, jeśli komórka ma niewłaściwą klasę, podczas debugowania błąd potwierdzenia spowoduje zatrzymanie aplikacji. Jednak w środowisku produkcyjnym, jeśli komórka ma niewłaściwą klasę, zostanie zwrócona pusta komórka, a aplikacja będzie nadal działać.