常々「クラス拡張をカテゴリってゆーな」って思ってるんだけど、「無名カテゴリ」自体は公式の呼称なんだよね。 [Objective-C] クラス拡張と無名カテゴリ - Qiita Objective-Cのクラス・カテゴリ・クラス拡張の整理 - $ cat /var/log/shin クラス拡張は、無名のカテゴリに似ています。が、別物です。一番の違いは、インスタンス変数を宣言できることと、宣言したメソッドはクラス本体の(=カテゴリ無しの)@implementationで実装しなければならない点です。 クラス拡張とカテゴリの一番の違いは、「クラス拡張はクラス実装と共にランタイムにロードされることが保証される」ことだと思います。 文脈として、もともとobj-c 2.0以前にはクラス拡張がなく、またメソッドのプロトタイプ宣言が必須だったこともあり、「外部に公開したくないメソッド宣言はプライベートなカテ
![クラス拡張とカテゴリの違いの話。 - なるようになるかも](https://cdn-ak-scissors.b.st-hatena.com/image/square/1b83f08e55468dd77952e1f20c64199ab0246a74/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fq%2Fquesera2%2F20140222%2F20140222185401.png)