ヘッダーのグローバルは、ObjC では不適切です。グローバルの使用について判断を下すことはありませんが (グローバルが必要になる場合があるため)、別の方法でグローバルを宣言します。
私が考えることができる最もクリーンで簡単な方法 (および私の好みの方法) は、グローバルのアクセサーをクラス メソッドとして実装し、ソース ファイルで変数自体を静的変数として宣言する新しいクラスを作成することです。
myglobal.h
@interface MyGlobal : Object
{
}
+ (BOOL)searchFlag;
+ (void)setSearchFlag:(BOOL)aFlag;
@end
myglobal.m
#import "myglobal.h"
// Static variables
static BOOL _searchFlag = NO;
@implementation MyGlobal
+ (BOOL)searchFlag
{
return _searchFlag;
}
+ (void)setSearchFlag:(BOOL)aFlag
{
_searchFlag = aFlag;
}
@end
[MyGlobal searchFlag]
この方法を使用すると、グローバルにアクセスするのはまたはと同じくらい簡単[MyGlobal setSearchFlag: YES]
です。