Objective C - это расширенный набор простых ANSI C, поэтому вы будете создавать и использовать глобальные переменные точно так же, как в старомодном C.
В одном файле .m или .c укажите:
BOOL gMyGlobalBoolVar = NO; // or YES, depending on whatever initial state is needed
Я мог бы поместить их в централизованный одноэлементный класс, такой как ваш файл appdelegate .m, или в отдельный файл .c, такой как myGlobals.c. Я обычно помещаю их после # import / includes, но перед любым определением класса, метода или функции, чтобы прояснить, что к ним можно получить доступ вне любого объекта или функции.
В файлах .h для всех классов, к которым вы хотите получить доступ к gMyGlobalBoolVar, укажите:
extern BOOL gMyGlobalBoolVar;
Тогда просто используйте их в любом месте класса:
if ( [ self dogHasFleas ] ) {
gMyGlobalBoolVar = YES;
}
Использование глобальных переменных в настоящее время не является «политически корректным», но для быстрого кода, который вы никогда не будете пытаться публиковать, повторно использовать, расширять или искать грубые ошибки, они работают так же хорошо, как и почти на каждом компьютере язык программирования более 50 лет назад.