У меня есть приложение iOS, созданное с самого начала с ошибкой в нем. Поскольку источник был создан из шаблона, его appdelegate.h выглядит так:
@interface myAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
myViewController *viewController;
}
BOOL myBool; // intended to be globally accessible
NSString *myString; // intended to be globally accessible
@end
Я ссылаюсь на myBool и * myString из многих других исходных файлов .m относительно глобальных переменных.
Ниже XCode 3.2.6, я не могу вспомнить, какие проблемы возникают во время компиляции.
В 3.2.6 при компиляции появилось предупреждение, указывающее на эти "глобальные" переменные в appdelegate.h, говоря: "Невозможно объявить переменную внутри @interface или @protocol". Поскольку никаких дополнительных проблем с компиляцией или во время работы приложения не возникало, к сожалению, я не рассматривал эти предупреждения.
Теперь, используя XCode 4.2, я не могу скомпилировать этот источник, потому что первые предупреждения превратились в ошибки сборки. Они ссылаются и указывают на каждую из этих строк в разных файлах .m, где есть ссылка на "глобальные переменные".
Есть ли простой способ исправить эту проблему, учитывая, что я все еще хочу получить доступ к этим переменным/ссылкам как глобальным?
Дополнительный вопрос: пока я оцениваю полученные ответы (спасибо за вас), еще один вопрос: любая идея, почему предупреждение не было указано ниже XCode v3.2.6, и только предупреждения в 3.2.6 если это реальная ошибка с моей стороны? И почему код все еще был скомпилирован и может быть запущен без каких-либо проблем?