2010-07-27 9 views
0

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

ответ

2

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

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

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

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

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

+0

upvote. Так вы объявляете глобальную переменную, но очень вероятно, что theres лучший способ сделать то, что вы пытаетесь сделать. – kubi

+0

В каждом из моих классов (20) у меня есть действие, требующее использования (например) 20 строк. Каждый класс использует одни и те же строки и вместо того, чтобы объявлять их в каждом классе, мне было интересно, есть ли способ просто объявить их один раз, а затем использовать их во всех моих классах. – Roosh

0

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

extern NSString * const STR_1; 

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

NSString * const STR_1 = @"String One"; 
0

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

0

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

См Warrior Answer

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

Смежные вопросы