在Objective-C中,是否有任何特定的规则来声明.m文件中的全局变量?

Way*_*Liu 1 declaration global-variables objective-c

通过阅读这篇文章,看起来在声明全局变量时应该考虑某些规则.

所以我尝试在.m文件中声明全局变量.但是,代码感觉似乎不高兴为我这样做.例如,假设我在.m文件中已有2行:

@implementation ViewController
@synthesize abc,xyz;

现在我要添加"BOOL isChecked;".

如果我在下面输入"@synthesize"(或者只是在@implementation和@synthesize之间),代码意义实际上建议我在输入"BOOL"时输入"bool"(小写).如果我在"@implementation"上面键入"BOOL",它会成功建议"BOOL".

当然,全局变量是这个类的一部分,这意味着它应该在实现中.我不确定为什么不喜欢让我们这样做.

这让我觉得Objective-C不喜欢我们在@synthesize下面声明全局变量.但我的问题是为什么?我觉得可能有一个原因或苹果公司在这里犯了一个错误.

mip*_*adi 5

当然,全局变量是这个类的一部分,这意味着它应该在实现中.我不确定为什么不喜欢让我们这样做.

全局变量不是类的一部分.当然,你可以把它们放在一个@implementation街区内,但它们真的不属于同一类 - 它们是全球性的 - 所以它们并不真正属于那里.

Objective-C没有像Java或其他语言那样的类变量.您可以使用全局变量和访问这些变量的类方法伪造它们,但最终,它们是全局的,而不是特定于类.