之间有什么区别
@implementation aClass {
aType *aVariable
}
- (void)aMethod: {
}
和
@implementation bClass
bType *bVariable
- (void)bMethod: {
}
bVariable
是全球性的吗?
答案 0 :(得分:2)
bVariable
是全球性的吗?
是
Objective-C是C的扩展,这是一个标准的C全局变量声明。
您可能还应该查看与{C}中的全局变量相关的static
和extern
的含义。
HTH
<强>附录强>
回到第一个问题,不同之处在于我无法在整个项目中再次定义
bVariable
,而术语aVariable
可以重复使用吗?
简短回答:不,至少不是你如何表达这个问题。
答案很长:你有两个声明,每个声明声明一个变量并关联一个名称(或标识符< / em>) - aVariable
,bVariable
- 使用该变量。除了类型,它是声明的一部分,变量具有生存期 - 变量存在多长时间 - 以及范围 - 程序中可以访问变量的部分。范围可以嵌套,内部范围可以包含使用与外部范围相同的名称的声明,这会导致隐藏 - 外部的变量无法通过名称直接访问范围。
全局变量是 lifetime 是程序的整个执行的变量,但 scope 是全局变量(直接) )可访问的需要不是整个程序(参见(Objective-)C中的static
限定符)和不同的全局变量与非重叠的范围 具有相同的名称。
实例变量的生存期与其拥有的类实例的变量相同,其范围是该班的成员。
还有 local 变量,其生命周期和范围是声明它们的包含方法,函数,块等。
以上只是一个简短的摘要,您应该查看所有斜体术语的含义。