У меня с самого начала было создано приложение для 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 если это настоящая ошибка с моей стороны? И почему код все еще был скомпилирован и мог выполняться без проблем?