有3种方法可以保证协议只能被类遵守 1.协议遵守NSObject
protocol Runable: NSObject {
}
2.协议遵守class
protocol Runable: class {
}
3.使用@objc修饰协议
// 被@objc修饰的协议,还可以暴露给Objective-C去遵守实现
@objc protocol Runable {
}
总结: 如果考虑到Swift
与Objective-C
混编,所写的协议要支持Objective-C
,那么使用@objc
关键字实现协议的可选方法是更好的选择