1. ホーム
  2. swift

[解決済み] カテゴリ用のSwiftクラスを作成するには?

2023-06-17 21:02:21

質問

既存のswiftクラスにカテゴリを作成したいのですが、IDEにそのためのオプションがありません。

swiftプロジェクトにカテゴリが存在するかどうか、心当たりはありますか?または、swiftプロジェクトで同様の機能を実現する方法はありますか?

どのように解決するのですか?

Swiftでは Extensions を使用して、既存のクラス、構造体、列挙型に新しい機能を追加することができます。

これらは主にいくつかの点でObjective-Cのカテゴリと異なっています。

  • 名前がない
  • Extension を明示的にインポートする必要はありません。既存の型に新しい機能を追加するために拡張機能を定義した場合、拡張機能が定義される前に作成されたとしても、その型のすべての既存のインスタンスで新しい機能が利用可能になります。
  • 上記のように、クラスだけでなく、他の型でも機能します。

現状では、エクステンションは

  • 計算されたプロパティおよび計算された静的プロパティを追加する
  • インスタンスメソッドとタイプメソッドの定義
  • 新しいイニシャライザーを提供する
  • 添え字の定義
  • 新しいネストされた型の定義と使用
  • 既存の型をプロトコルに準拠させる

拡張機能を宣言するための基本的な構文は以下の通りです。

extension SomeType {
    // new functionality to add to SomeType goes here
}

チェック Appleのドキュメント を参照してください。