Objective-CカテゴリはSwiftの拡張機能と呼ばれています。Swiftでデリゲート関数を実装するための拡張機能の使用
はしかし、最近、私はこのにぶつかった:彼らはデリゲートfunctions.Thisを実装しているように見えた。これは、
extension MyClass : GMSMapViewDelegate
{
func mapView(mapView: GMSMapView, idleAtCameraPosition position: GMSCameraPosition)
{
print("idleAtCameraPosition")
self.getAddressFromLocation(mapView.camera.target)
}
}
は、デリゲートの機能を実現するのは非常に良いときれいな道に見えました。だから私は個人的に試してみましたが、これはうまくいきましたが、カテゴリは拡張機能がないと間違っているかもしれないと思います。サブクラス化を使って他のクラスに余分な機能を追加するために使用されました。
私の質問では、そのような目的のために拡張機能を使用することができますか? 私たちがこれを行うことができれば、エクステンションは単なるカテゴリー以上のものです。なぜ私たちはObjective-Cのカテゴリーでこれを達成できるとは思わないからです。
おかげ
拡張機能では、プロトコルに準拠するだけでなく、「クラスに関数を追加する」(特に計算されたインスタンスプロパティを定義する)以外の拡張実装も可能であることに注意することが重要です。 –