Все что вам нужно, это использовать простые старые глобальные переменные C.
Во-первых, определить переменную в вашем main.m
, перед вашей main
функции:
#import <...>
// Your global variable definition.
type variable;
int main() {
...
Во-вторых, вам нужно, чтобы другие исходные файлы знают об этом. Вы должны объявить его в какой-.h
файл и импортировать этот файл во всех .m
файлы, необходимые для переменной в:
// .h file
// Declaration of your variable.
extern type variable;
Обратите внимание, что вы не можете присвоить значение переменной в объявлении блока, в противном случае он становится определение того, что переменная, и вы заканчиваете с ошибкой компоновщика, жалующейся на несколько определений с тем же именем.
Чтобы сделать вещи ясно: каждая переменная может быть объявлена несколько раз (Декларация говорит, что эта переменная существует где-то), но определяется только один раз (определение фактически создает память для этой переменной).
Но будьте осторожны, глобальные переменные являются плохой практикой кодирования, потому что их значение может быть неожиданно изменено в любом из файлов, поэтому вы можете столкнуться с трудностями при отладке ошибок. Например, вы можете избежать глобальных переменных, используя шаблон Singleton.
Имо, глобальные переменные на самом деле сделать много смысла в Objective C, учитывая тенденцию много вещей, естественно, синглтонов, особенно контроллеров просмотра. В этом случае они действуют скорее как константы, чем переменные. – devios1
На самом деле синглтоны используют глобальную переменную - общий экземпляр - таким образом, делая каждого члена глобальным; вы заменяете только одну глобальность другим. – Cristik