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

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

@interface classGlobal : NSObject {
    NSString *myGuid;
}

@property(nonatomic,assign)NSString *myGuid;

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

Ответы [ 2 ]

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

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

1 голос
/ 27 июля 2010

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

MyClass.m:

    static NSString* myGuid = nil;

    + (void) someClassMethod {
        if( myGuid == nil ) ...
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...