ส่วนขยาย UICollectionView สำหรับเพิ่มเซลล์ว่างอย่างรวดเร็ว

May 03 2023
โค้ดตัวอย่าง Swift โค้ดในตัวอย่างข้างต้น หากเซลล์เป็นคลาสที่ไม่ถูกต้อง เมื่อทำการดีบัก การยืนยันล้มเหลวจะหยุดแอป อย่างไรก็ตาม ในการผลิต หากเซลล์อยู่ในคลาสที่ไม่ถูกต้อง เซลล์ว่างจะถูกส่งกลับและแอปจะทำงานต่อไป

ตัวอย่างโค้ดสวิฟท์

รหัส

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)
        }
    }

ในตัวอย่างข้างต้น หากเซลล์อยู่ในคลาสที่ไม่ถูกต้อง เมื่อทำการดีบัก การยืนยันล้มเหลวจะทำให้แอปหยุดทำงาน อย่างไรก็ตาม ในการผลิต หากเซลล์อยู่ในคลาสที่ไม่ถูกต้อง เซลล์ว่างจะถูกส่งกลับและแอปจะทำงานต่อไป