Проблемы с синтаксическим анализатором Objective-C и статической функцией-получателем - PullRequest
0 голосов
/ 22 июля 2010

Я создал статическую функцию получения:

@implementation MyClass

static int aValue = 1;
+ (int) aValue { return aValue; }

// other stuff here

@end

и теперь я пытаюсь получить к нему доступ другим способом:

@implementation AnotherClass

- (void) aMethod {
    if (MyClass.aValue > 0) { NSLog(@"Foobar"); } // No parser error
    if ((MyClass.aValue > 0)) { NSLog(@"Foobar"); } // My parser doesn't like that
    if (([MyClass aValue] > 0)) { NSLog(@"Foobar"); } // This is ok again
    if ((0|MyClass.aValue > 0)) { NSLog(@"Foobar"); } // Gives a warning, but works
}

// other stuff here

@end

Как видите, у синтаксического анализатора, похоже, есть проблемы со статическими методами во вложенных логических выражениях, что весьма прискорбно, если вы хотите использовать &&, || и аналогичные статьи.

Полное сообщение об ошибке Xcode «Ожидается») перед «.» лексема». Может кто-нибудь объяснить мне поведение парсера? Я что-то упустил или это ошибка?

Ле Торби

1 Ответ

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

Свойства, объявленные с ключевым словом @property, имеют значение только в случаях.
Нет такой вещи как свойство класса.

Вы можете создать метод получения, но вы не сможете использовать точечный синтаксис с классом.
Всегда используйте вызов метода: [ MyClass myValue ]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...