【发布时间】:2012-06-11 07:11:26
【问题描述】:
请任何人告诉我在 { } 内声明变量与在头文件中 @interface 和 @end 外声明变量有什么区别。两种方式都能成功编译。
【问题讨论】:
标签: objective-c ios
请任何人告诉我在 { } 内声明变量与在头文件中 @interface 和 @end 外声明变量有什么区别。两种方式都能成功编译。
【问题讨论】:
标签: objective-c ios
如果您希望变量成为类的一部分(也称为实例变量),则在括号内声明它,否则将其声明为与类无关的全局变量。
例如
// XYZ.h
@interface XYZ
{
int myinstancevariable;
}
@end
int myglobalvariable;
...
XYZ* a = [[XYZ alloc] init];
NSLog(@"%d", [a myinstancevariable]);
NSLog(@"%d", myglobalvariable );
编辑:忘记了{}
【讨论】:
如果您在 code block - {} 内声明变量,则其范围(寿命)仅在该块内。
如果您在 @interface 和 @end 之外声明它,则它的范围在该文件内。如果这是一个头文件,这个变量可以在全局范围内使用。
【讨论】: