Bạn có thể sử dụng giao thức so với xác nhận như được đề xuất trong câu trả lời ở đây bằng cách drewag
. Tuy nhiên, ví dụ cho giao thức bị thiếu. Tôi đang nói ở đây,
Giao thức
protocol SomeProtocol {
func someMethod()
}
class SomeClass: SomeProtocol {
func someMethod() {}
}
Bây giờ mọi lớp con được yêu cầu để triển khai giao thức được kiểm tra trong thời gian biên dịch. Nếu SomeClass không triển khai someMethod, bạn sẽ gặp lỗi thời gian biên dịch này:
lỗi: nhập 'SomeClass' không phù hợp với giao thức 'SomeProtocol'
Lưu ý: điều này chỉ hoạt động đối với lớp trên cùng thực hiện giao thức. Bất kỳ lớp con nào cũng có thể bỏ qua các yêu cầu giao thức. - như nhận xét củamemmons
Quả quyết
class SuperClass {
func someFunc() {
fatalError("Must Override")
}
}
class Subclass : SuperClass {
override func someFunc() {
}
}
Tuy nhiên, xác nhận sẽ chỉ hoạt động trong thời gian chạy.