1. ホーム
  2. objective-c

[解決済み] クラス拡張とクラス分類

2023-06-01 15:16:57

質問

クラス拡張 @interface Class () はもっと強力で、クラスに変数を注入することができます。 カテゴリ @interface Class (Category) はできません。

他にどのような違いがありますか?また、どのような場合にクラス拡張ではなくカテゴリーを使用すべきですか?

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

主な違いは、拡張モジュールの場合、コンパイラはそのメソッドをメインモジュールの @implementation の中で実装することを期待するのに対し、カテゴリでは個別の @implementation ブロックがあります。そのため、拡張子はメインの .m ファイル (ちなみに ivar を気にすべき唯一の場所) の先頭でのみ使用すべきです。 拡張子 .