请任何人告诉我在{}内声明变量与在头文件中@interface和@end之外声明变量有什么区别。两种方式都会导致编译成功。
问问题
705 次
2 回答
5
如果您希望变量成为类的一部分(也称为实例变量),则在括号内声明它,否则将其声明为与类无关的全局变量。
例如
// XYZ.h
@interface XYZ
{
int myinstancevariable;
}
@end
int myglobalvariable;
...
XYZ* a = [[XYZ alloc] init];
NSLog(@"%d", [a myinstancevariable]);
NSLog(@"%d", myglobalvariable );
编辑:忘记{}
于 2012-06-11T07:14:31.593 回答
1
如果您在 a 内声明变量,code block - {}
则它的范围(寿命)仅在该块内。
如果您在外部声明它并且@interface
它@end
的范围在该文件内。如果这将是一个头文件,则可以全局使用此变量。
于 2012-06-11T07:15:55.540 回答