Objective-C の単一のアンダースコアは、Apple の「内部」使用のために予約されているようです (Apple が主張する前は、プライベート インスタンス変数で使用できました)。しかし、なぜ彼らは、iPhone の SQLiteBooks の例で2つのアンダースコアを使用するのでしょうか? MasterViewController.m から取得したこのスニペットを参照してください。
+ (EditingViewController *)editingViewController {
// Instantiate the editing view controller if necessary.
if (__editingViewController == nil) {
__editingViewController = [[EditingViewController alloc] initWithNibName:@"EditingView" bundle:nil];
}
return __editingViewController;
}
このフォーラムでは、C に関連する二重アンダースコアの使用について言及されています。これは、「コンパイラの内部使用」のためのものです。この状況でそれがどのように適用されるかはわかりません。
SQLiteBooks サンプル プロジェクトと同じように動作する ViewController がアプリに必要ですが、この 2 つのアンダースコアには困惑しています。