int helloness;
@interface test : NSObject
@end
@interface test : NSObject{
int helloness;
}
@end
难道我明白,下面是真实和声明变量上述两个区块之间的唯一有意义的差异:
- 在这两个区块中,执行
test.m
可以在内部使用helloness
变量,如第一个块中的ivar - ,
helloness
将存在,在第二块
在第一块进口这.h
但在其他公开的,只有test.m
任何类,这是技术上的什么被认为是在任何类中的“全局变量”是进口这将有权访问helloness
的相同内容?
如果多个头文件有helloness
的声明并将其全部导入,会发生什么情况?
这个类似,认为这是实现:
@implementation AClass
int food=5;
这里,food
的作用就像一个内部伊娃,即使它不以任何@interface
声明?
,这就好像我在它之前添加了'static',在另一个单词,一个类变量? – johnbakers 2012-03-16 06:07:37
不完全 - 我遗漏了一些东西。使用'static',它的行为就像是一个“类变量”:只有在同一个文件中才能看到。如果没有'static',声明对其他文件是不可见的,但*符号*是......我认为他们可以用'extern'得到它,更重要的是,如果你有'食物'在其他文件中。 (在实现文件中没有声明'static'的全局变量并不是我们经常看到的东西,而且可能有充分的理由。) – rickster 2012-03-16 06:33:27