2012-05-12 22 views
2

各クラスに固有のカテゴリを作成して独自のメソッドで拡張したいデータクラスを用意しました。同じ名前のObjective-Cカテゴリ

カテゴリを宣言するときに、各カテゴリに固有の名前を付ける必要があるか、同じ名前を再利用できるかどうかを指定します。

例。 ListクラスとListItemクラスがあり、両方にカテゴリが必要だとします。次のように私が今やっていることを宣言されています

を一覧+ Additions.h

@interface List (Additions) ... 

でのListItem + Addtions.hで

@interface ListItem (Additions) ... 

ことは大丈夫ですか?私は一貫して働くかどうかは分かりません。カテゴリ名とは何ですか?それは "追加"か、 "ListItem + Additions"の組み合わせですか?

答えて

2

カテゴリ名はList (Additions)ListItem (Additions)です。したがって、2つのカテゴリは別々で独立しています。

"ListItem + Additions"のようなものは、カテゴリを定義するファイル名の共通の規則ですが、コンパイラもランタイムもそれに注意を払っていません。

+0

アスタリスク:コンパイラ**は**ファイル名に気づきます、それ以外の '__FILE__'マクロはどのように機能しますか? –

+0

*ファイル名は知っていますが、注意を払っていません。それは決断の根拠にはなりません。 (また、 '__FILE__'マクロは、コンパイラではなくプリプロセッサに置き換えられます)。 –

2

大丈夫ですか?私は一貫して働くかどうかは分かりません。カテゴリ名とは何ですか?それは "追加"か、 "ListItem + Additions"の組み合わせですか?

はい、問題ありません。

カテゴリはどちらも同じ名前:Additionsですが、1つはListのカテゴリで、その他はListItemのカテゴリです。したがって、名前の衝突はありません。これは、両方のカテゴリ宣言を同じファイルに入れていたとしても当てはまります。

関連する問題