インスタンス変数を作成し、指定した初期化子で設定します。これがサンプル@implementation
ブロックです。
@implementation RandomViewController {
// Instance variable names should start with an underscore, by convention.
Class *_c;
}
...
// Designated initializer for UIViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
_c = [[Class alloc] init];
}
return self;
}
...
- (void)someMethodThatNeedsAClassInstance
{
[_c doSomething];
}
ARCを使用していない場合は、実装に追加[_c release]
する必要がありますdealloc
。
これで、クラス内のすべてのメソッドで_c
、初期化子で作成したインスタンスを参照して取得できます。ちなみに、これは実際には「グローバル」インスタンスではなく、オブジェクトごとです。作成する個々のViewControllerには、独自ののインスタンスがあり_c
ます。また、さらに優れたアプローチは、プロパティを宣言することであり、インスタンス変数をまったく宣言しないことです。