คุณสามารถใช้โปรโตคอล VS ยืนยันตามข้อเสนอแนะในคำตอบที่นี่drewag
โดย อย่างไรก็ตามตัวอย่างสำหรับโปรโตคอลหายไป ฉันครอบคลุมที่นี่
มาตรการ
protocol SomeProtocol {
func someMethod()
}
class SomeClass: SomeProtocol {
func someMethod() {}
}
ตอนนี้ทุกคลาสย่อยจำเป็นต้องใช้โปรโตคอลซึ่งจะถูกตรวจสอบในเวลาคอมไพล์ หาก SomeClass ไม่ใช้ someMethod คุณจะได้รับข้อผิดพลาดเวลาคอมไพล์นี้:
ข้อผิดพลาด: ประเภท 'SomeClass' ไม่สอดคล้องกับโปรโตคอล 'SomeProtocol'
หมายเหตุ:ใช้ได้เฉพาะกับคลาสบนสุดที่ใช้โปรโตคอล คลาสย่อยใด ๆ สามารถเพิกเฉยต่อข้อกำหนดของโปรโตคอลได้ - ตามความเห็นของmemmons
การยืนยัน
class SuperClass {
func someFunc() {
fatalError("Must Override")
}
}
class Subclass : SuperClass {
override func someFunc() {
}
}
อย่างไรก็ตามการยืนยันจะใช้ได้เฉพาะในรันไทม์เท่านั้น