繁体   English   中英

具有静态吸气功能的Objective-C解析器问题

[英]Objective-C parser problems with and static getter-function

我创建了一个静态的getter函数:

@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错误消息是“。”之前的“ Expected')”。 令牌”。 有人可以向我解释解析器的行为吗? 我错过了重要的东西还是这是一个错误?

勒·托比

使用@property关键字声明的属性仅在实例中具有含义。
没有类属性。

您可以创建一个getter方法,但不能在类中使用点分语法。
始终使用方法调用: [ MyClass myValue ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM