{ } 内で変数を宣言する場合と、ヘッダー ファイルで @interface & @end の外で変数を宣言する場合の違いを教えてください。どちらの方法でも、コンパイルは成功します。
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
変数をスコープ内で宣言すると、code block - {}
そのスコープ (ライフスパン) はそのブロック内のみになります。
外部で宣言すると、@interface
スコープ@end
はそのファイル内になります。これがヘッダー ファイルの場合、この変数はグローバルに使用できます。
于 2012-06-11T07:15:55.540 に答える