Как объявить глобальную переменную в Objective C

Я просмотрел большинство вопросов, размещенных здесь, и никакой ответ не был достаточно ясным для меня, чтобы быть уверенным в глобальных переменных.

То, что я думаю о глобальной переменной, – это просто переменная, объявленная в

@interface HelloWorldLayer : CCLayer { //global variable goes here NSString *string; } 

И теперь я могу использовать эту переменную в любом методе.

Это правильно или я ошибаюсь.

Это не глобальная переменная. Это переменная, которая будет доступна только как переменная члена экземпляра только для объектов HelloWorldLayer. Для глобальных переменных в xcode см. Это решение. Глобальная переменная в программе Objective-C

Это не называется глобальной переменной. Это переменная экземпляра. Но да, вы можете получить к нему доступ в каждом экземпляре метода в своей реализации HelloWorldLayer.

Если вы хотите получить к нему доступ за пределами HelloWorldLayer, вы должны создать свойство, подобное этому

HelloWorldLayer.h

 @interface HelloWorldLayer : CCLayer { NSString *string; } // Declare variable to be used outside the layer here @property(nonatomic, copy) NSString* string; @end 

HelloWorldLayer.m

 @implementation HelloWorldLayer @synthesize string; // This matches the property "string" with the variable "string" ... @end 

Пожалуйста, посмотрите здесь

Вы создаете статическую переменную и используете ее через статические аксессоры. PS вам нужно импортировать класс, в котором хранится статическая переменная #import "staticVarClass.h" где вам нужно ее использовать.

Чтобы сделать глобальный var, как в C #, ответ о том, как это сделать, находится в другом сообщении здесь, в Stackoverflow: глобальная переменная в программе Objective-C

Говорится:

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

 extern NSInteger MYGlobalVariable; 

Затем поместите это в файл реализации (* .m, * .c, * .cpp):

 MYGlobalVariable = 0; // Or ny other default value. 

Вот как вы делаете глобальную перемену хлеба и масла.

Удачи с вашим проектом.

Если вам нужна глобальная переменная C (доступная по всему приложению), вы должны объявить ее за пределами любого объявления интерфейса или файла .h и точно в одной реализации или .c файле. Вам придется объявить его extern в других файлах, чтобы сделать его видимым в других файлах. Обязательно инициализируйте его в объявлении, поскольку он не будет по умолчанию.

Обратите внимание, что объявление указателя объекта Objective C (например, NSString *) в качестве глобальной переменной C таким образом увеличивает шансы на то, что он завершится с неперезаменяемым или трудно отлаживаемым кодом.

на самом деле в соответствии с моим r & d я получил это с помощью extern, мы должны создать экземпляр, но последнее, что нужно сделать #define вашу переменную и получить доступ к любому, где вы хотите, без создания экземпляра и другой вещи, просто использовать переменную по ее имени ….