私はこのコードで、このquestionを見た:UIViewまたはUIViewControllerを直接拡張しないでください。
protocol Flashable {}
extension Flashable where Self: UIView
{
func flash() {
UIView.animate(withDuration: 0.3, delay: 0, options: .curveEaseIn, animations: {
self.alpha = 1.0 //Object fades in
}) { (animationComplete) in
if animationComplete == true {
UIView.animate(withDuration: 0.3, delay: 2.0, options: .curveEaseOut, animations: {
self.alpha = 0.0 //Object fades out
}, completion: nil)
}
}
}
}
そして私はなぜあなただけの直接ちょうどUIView
を拡張しないだろうか?または類似のケースでUIViewController
はなぜwhere Self:
- と周りにそれをねじる拡張私たちは私たちの意図を高め、他の開発者が来るとき、彼らはちょっとこのクラスはなどフラッシュ可能、調光、に準拠していることがわかりますように、それか?
- また、私たちのUIViewには別の意味のある拡張機能がありますか? UIViewまたはUIViewControllerの異なるunNamed拡張の代わりに?
- POPのこの件に関するアップルのガイドラインはありますか?私は、開発者がそれをやってこの方法を見て、それはプログラマがどの
UIView
決めることができますので、このアプローチはextension UIView { func flash() { ... } }
のように、直接
UIView
を使用することが好ましい理由は...
政府が「自己破壊」機能を備えた軍用ビルを建設していたとします。ビルディングの拡張機能として、この機能を実装したとします。今あなたの家( 'Buiding')はこの"自己破壊 "機能を継承します。それについてどう思いますか? – Alexander