繁体   English   中英

{}内部与@interface和@end外部的objective-c变量声明

[英]objective-c variable declaration inside { } vs outside of @interface & @end

请任何人告诉我在头文件中的{}内部和@interface&@end外部声明变量之间有什么区别。 两种方法都能成功编译。

如果您希望变量成为类的一部分(又称实例变量),则在方括号内声明它,否则将其声明为与该类无关的全局变量。

例如

// XYZ.h

@interface XYZ
{
  int myinstancevariable;
}
@end

int myglobalvariable;

...

XYZ* a = [[XYZ alloc] init];
NSLog(@"%d", [a myinstancevariable]);
NSLog(@"%d", myglobalvariable );

编辑:忘记了{}

如果您在code block - {}内声明变量code block - {}则其作用域(寿命)仅在该code block - {}内。

如果在@interface &@ @end外部声明它,则其作用域在该文件内部。 如果这将是一个头文件,则此变量可以全局使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM