Глобальные переменные? - PullRequest
0 голосов
/ 27 июля 2010

Как использовать глобальные переменные в x-коде (iphone).Например, допустим, я хочу объявить набор переменных (NSStrings) в файле viewcontroller, тогда как мне получить к ним доступ в разных классах?Кто-нибудь может мне помочь?

Ответы [ 4 ]

2 голосов
/ 27 июля 2010

Глобальные переменные являются глобальными переменными. Вы используете их так же, как и в любой программе на С, то есть обычно они объявляются в чем-то вроде «globals.h» и импортируются везде, где это необходимо.

С учетом вышесказанного, вообще не стоит полагаться на глобалы. У вас может быть объект «ApplicationController», который по сути отслеживает глобальное состояние приложения, но его переменные должны быть переменными экземпляра, доступ к которым осуществляется только изнутри или через getters / setters.

Если вы хотите объявить связку строк в одном объекте, на которую ссылаются многие другие объекты, обычно вы делаете этот объект одиночным и передаете ссылку на него каждому объекту, нуждающемуся в нем.

Однако вам нужно спросить себя ПОЧЕМУ вам нужно сделать это, и если нет лучшего способа. Ставлю доллары на пончики, нет веской причины для того, что ты пытаешься сделать.

Дайте нам больше подробностей о том, что для этих строк является глобальным, и мы можем показать вам причины, почему они этого не делают. :)

0 голосов
/ 27 июля 2010

Если вы объявляете переменную в делегатах, вы можете получить доступ к этим переменным в любых других контроллерах, используя методы setter и getter.

См. Ответ Воина

Надеюсь, это вам поможет.

0 голосов
/ 27 июля 2010

просто объявите свои переменные в файле .h и затем импортируйте этот файл в любой класс, который вы хотите использовать.Вы можете сделать любой тип объекта или переменной глобальным.

0 голосов
/ 27 июля 2010

Вы можете использовать синглтон , если он не слишком убит.Другой вариант - NSDefaults .Конечно, самый простой способ - просто определить extern в .h

  extern NSString * const STR_1;

и значение в .m:

  NSString * const STR_1 = @"String One";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...