[解決済み】Objective-Cのシングルトンはどのように見えるべきですか?[クローズド]
2022-03-25 08:16:19
質問
私のシングルトン・アクセッサ・メソッドは、通常、何らかの変種である。
static MyClass *gInstance = NULL;
+ (MyClass *)instance
{
@synchronized(self)
{
if (gInstance == NULL)
gInstance = [[self alloc] init];
}
return(gInstance);
}
これを改善するには、どうしたらいいでしょうか?
解決方法は?
もう一つの選択肢は
+(void)initialize
メソッドを使用します。 ドキュメントより。
ランタイムが送信する
initialize
は、そのクラスやそれを継承したクラスがプログラム内から最初のメッセージを送信される直前に、プログラム内の各クラスにちょうど一度だけ送信されます。(従って、そのクラスが使用されなければ、メソッドは決して起動されないかもしれません。) ランタイムはinitialize
メッセージをスレッドセーフな方法でクラスへ送ります。スーパークラスは、サブクラスより先にこのメッセージを受け取ります。
ということは、これに近いことができるわけですね。
static MySingleton *sharedSingleton;
+ (void)initialize
{
static BOOL initialized = NO;
if(!initialized)
{
initialized = YES;
sharedSingleton = [[MySingleton alloc] init];
}
}
関連
-
[解決済み] MVPとMVC、その違いは何ですか?
-
[解決済み] Inversion of Controlとは?
-
[解決済み] 静的クラスとシングルトンパターンの違い?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] クラス vs. #インポート
-
[解決済み] デザインパターンについて。シングルトンはいつ使うべきですか?
-
[解決済み] NSTimerの使い方を教えてください。
-
[解決済み】C++ シングルトンデザインパターン
-
[解決済み】AppleがARCでのシングルトンパターンの実装にdispatch_onceの使用を推奨するのはなぜですか?
-
[解決済み】ブロック宣言の構文リスト
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Objective-C。NULL、nil、@""の違いは何ですか?
-
[解決済み] Xcodeでコンソールに何かを印刷するには?
-
[解決済み] クラスメソッドとインスタンスメソッドの違いは何ですか?
-
[解決済み] ブロック内の変数をブロック外の変数に代入する
-
[解決済み] 「NSString *' 型のパラメータに 'const NSString *' を送ると修飾子が破棄される」警告
-
[解決済み】iOS 7で非推奨のsizeWithFont:の代わりになるものは?
-
[解決済み】Cocoaアプリからターミナルコマンドを実行する
-
[解決済み】iOSでメールアドレスが有効であることを確認する【重複あり
-
[解決済み] ARCと互換性のあるObjective-Cのシングルトンを実装するにはどうしたらいいですか?
-
[解決済み] 別のUIViewの下にあるUIViewとのインタラクションを許可する