我想制定一个只能通过UIlabels和UIButton进行协议的协议,有没有办法?
示例:
protocol MyProtocol {
func setTextValue()
}
我希望我的协议只能由UILabel和UIButton访问,而不能访问其他类
我想制定一个只能通过UIlabels和UIButton进行协议的协议,有没有办法?
哪个只能?不直接,没有。你不能强加给另一个程序员一个合同,这样程序员就不能让其他一些类采用你的协议(例如,如果发生这种情况,就强迫编译器抱怨)。
但也许你的意思是哪个只是“符合”(即采用)。在那种情况下,当然。没有什么可以阻止你声明一个协议,然后自己声明UILabel和UIButton确实采用它(而不是声明任何其他类采用它)。去做就对了。
扩展可能是一个更好的套件,特别是在swift中,取决于你想要做什么。
extension UILabel {
func greenBackground() {
self.backgroundColor = .green
}
}
然后你可以在任何UILabel上的项目中的任何地方使用它,如下所示:
let label = UILabel()
label.greenBackground()