Область действия typedef в заголовочном файле - PullRequest
0 голосов
/ 16 марта 2012

Если я помещу typedef enum{kOne,kTwo}whatever; в .h выше @interface, я знаю, что могу использовать его в реализациях методов в .m.То есть я могу свободно использовать kOne и kTwo.

Теперь я знаю, что могу сделать @property из whatever, тем самым выставляя выбранное kValue whatever другим классам, еслижелаемый.

Но что, если я захочу раскрыть перечисления whatever, чтобы я мог получить доступ к kOne и kTwo из других классов?То есть я хочу знать, сколько из них включено в whatever и получить доступ к этим константам тоже.Например, я хочу, чтобы другой класс знал, что kOne равно 0, kTwo равно 1 и т. Д.

Есть ли способ сделать это?

Ответы [ 2 ]

3 голосов
/ 16 марта 2012

Просто #import соответствующий заголовочный файл, так же, как вам нужно, чтобы использовать класс, для которого он определен.

Вы не нуждаетесь в охранниках включения в ответе @ dwerner, потому что вы должны не использовать #include для заголовков Objective-C. Вместо этого используйте #import. См. этот вопрос для более подробной информации.

0 голосов
/ 16 марта 2012

Если я вас правильно понимаю, вы можете поместить typedef в его собственный заголовок и заключить в

#ifndef __MY_TYPEDEF__
typedef enum{kOne,kTwo}whatever;
#endif

и просто #include это где нужно.

...