可能性の重複は:
Difference between Category and Class Extension?objective-cの無名カテゴリと通常カテゴリの違いは何ですか?
私はしばしばあなたがプライベートとして変数を宣言したいときは、.mファイルに無名のカテゴリになるだろうと言われています。
名前の付いたカテゴリとは異なり、名前のないカテゴリに本質的に異なるものはありますか?
違いは何ですか?
可能性の重複は:
Difference between Category and Class Extension?objective-cの無名カテゴリと通常カテゴリの違いは何ですか?
私はしばしばあなたがプライベートとして変数を宣言したいときは、.mファイルに無名のカテゴリになるだろうと言われています。
名前の付いたカテゴリとは異なり、名前のないカテゴリに本質的に異なるものはありますか?
違いは何ですか?
「名前のないカテゴリ」と呼ばれるものを「クラスの拡張子」と呼びます。
1つの違いは、クラス拡張子の宣言がクラス '@implementation
ブロックで定義されていることをコンパイラが予期することです。つまり、拡張子の@implementation
ブロックが、それが第1の@implementation
ブロックと同じ変換であるときに、明示的に宣言しません。あなたの便宜のためにマージされています。したがって、コンパイラは警告を生成する可能性があります。
もう1つの違いは、通常のカテゴリではできない、合成された(結果として型のサイズを変更する)プロパティを宣言することです。プロパティに加えて、インスタンス変数はクラス拡張の@interface
で宣言することができます。
これを超えて、それはちょうど慣例です。
クラス拡張はivarsを宣言することもできますが、他のカテゴリは宣言できません。 –
ああクラス拡張は、型のサイズを変更することができます。それは大きなものです。わかりました。 –
@BJHomerが更新されました。ありがとう。 – justin
[カテゴリとクラスの拡張の違い?](http://stackoverflow.com/questions/3499704/difference-between-category-and-class-extension)、http://stackoverflow.com/questions/7136124 /、http://stackoverflow.com/questions/1052233/ –