#define в заголовочных файлах в Objective-C - PullRequest
4 голосов
/ 05 июля 2011

У меня есть Global.h, который выглядит как

#define NUMBERX 21

В AppDelegate.h я включаю файл Global.h. В AppDelegate.m я включаю файл AppDelegate.h. Но в AppDelegate.m я не могу получить доступ к переменной NUMBERX.

ERROR: Use of undeclared indentifier 'NUMBERX'.

Если я определяю NUMBERX в AppDelegate.h, чем он работает, но я хочу включить только заголовочный файл (Global.h) во все остальные заголовочные файлы, где я хочу использовать переменную NUMBERX.

Как я могу решить это?

Ответы [ 4 ]

1 голос
/ 05 июля 2011

Если вы используете стандарт target-c #import для включения файла заголовка, попробуйте заменить его на "c" #include.

1 голос
/ 05 июля 2011

Это должно быть хорошо, если вы не используете #undef, прежде чем использовать его. Используете ли вы этот символ перед тем, как включить AppDelegate.h в файл AppDelegate.m? Используете ли вы включающие охранники, которые могут запретить его включение?

0 голосов
/ 06 июля 2011

Не могли бы вы использовать int const NUMBERX, тогда вы получите завершение кода и проверку компилятора.

У Apple есть довольно хорошие рекомендации по определению констант и названию их здесь. Руководство по кодированию Apple - Константы

0 голосов
/ 05 июля 2011

Вы должны включить свой файл Global.h в файл AppDelegate.m.

...