объявить глобальную переменную в классе nsobject (цель C)

Я объявляю переменную и некоторые методы в глобальном классе nsobject, например

@interface classGlobal : NSObject {
    NSString *myGuid;
}

@property(nonatomic,assign)NSString *myGuid;

и я синтезирую в классе .m. но когда я пытаюсь получить доступ к переменной myGuid в том же классе (classGlobal.m), появляется ошибка «переменная экземпляра myGuid доступна в методе класса». Пожалуйста, подскажите, как мне решить эту проблему.


person Mitesh Khatri    schedule 27.07.2010    source источник


Ответы (2)


Компилятор жалуется, что вы используете myGuid в области, где он не доступен / не определен. Объявление myGuid в части interface не определяет глобальную переменную, а определяет переменную-член экземпляра. Если вам нужна глобальная переменная (скажем, потому что вам нужно получить к ней доступ из метода класса, объявленного с + вместо -), объявите как обычно в вашем .m файле:

MyClass.m:

    static NSString* myGuid = nil;

    + (void) someClassMethod {
        if( myGuid == nil ) ...
    }
person Dirk    schedule 27.07.2010

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

person willcodejavaforfood    schedule 27.07.2010