-1

目的 c では、インターフェイスのカテゴリにインスタンス変数を追加できないことを知っています。それは大丈夫ですが、今日、私はそれを理解できないものを見ています(なぜこの動作が正しいのですか?)

@interface XXXX:NSObject

@end

@interface XXXX(){

@private

    int x;
}

@end

空の () カテゴリにインスタンス変数を追加できるのはなぜですか。また、インターネットで誰も言及していないのはなぜですか。

皆さんありがとう

4

1 に答える 1

3

インスタンス変数を匿名カテゴリ/クラス拡張に追加できます (()カテゴリ名のみを使用)。これは、それらが基本的にメイン インターフェイスの単なるプライベート拡張であり、存在できるのは 1 つだけだからです。

ただし、名前付きカテゴリを持つ新しいインスタンス変数を追加することはできません。ただし、連想参照を使用してこれを回避できます。

于 2012-06-14T14:01:39.460 に答える