描画ルーチンを備えた OSX のカスタム コントロールがあります。このコントロールのすべてのインスタンスは同じ画像を使用します。
これらのイメージを、クラスによって作成されたすべてのインスタンスで使用できる静的オブジェクトとしてインスタンス化するのは良い考えでしょうか。
それが良いアイデアだった場合、どうすれば画像ローダーをクリーバーな方法で実装できますか? クラスに次のようなものを追加することを考えました
static NSImage *imageone;
static NSImage *imagetwo;
static NSImage *imagethree;
しかし、画像を初期化するより良い方法についてはわかりません...おそらくこのようなシングルトン関数ですか?
+ (void)setupSharedImages {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
imageone = [NSimage imageNamed:@"...."];
imagetwo = [NSimage imageNamed:@"...."];
image three = [NSimage imageNamed:@"...."];
});
}