*

【objective-c】シングルトンパターン

公開日: : objective-c

MySingletone.h

//クラスメソッドを定義
+ (MySingletone*)sharedManager;
+ (id)allocWithZone:(NSZone *)zone;

MySingletone.m

#pragma mark - singletone pattern
static MySingletone *mySingletone = nil;

+ (MySingletone*)sharedManager
{
    @synchronized(self) {
        if (mySingletone == nil) {
            [[self alloc] init]; // ここでは代入していない
        }
    }
    return mySingletone;
}

+ (id)allocWithZone:(NSZone *)zone 
{
    @synchronized(self) {
        if (mySingletone == nil) {
            mySingletone = [super allocWithZone:zone];
            return mySingletone;  // 最初の割り当てで代入し、返す
        }
    }
    return nil; // 以降の割り当てではnilを返すようにする
}

- (id)copyWithZone:(NSZone *)zone
{
    return self;
}

関連記事

no image

【objective-c】シングルトンインスタンスを生成するクラスを定義する

あるクラスのインスタンスが常に1つのみ存在を許すような仕組みをシングルトンパターンといいます。

記事を読む

no image

【objective-c】Objective-C 基本の速習トレーニング

検索一発クンをiphoneに移植するにあたって、objective-cとxcodeの扱いに一番苦

記事を読む

no image

【objective-c】デリゲート[delegate]を実装する

デリゲートは「委譲」と訳され、クラスAで起きたイベントの処理をクラスBで実装する仕組みです。

記事を読む

no image

【objective-c】エラーメッセージとその実態

java人間にとってxcodeのコンソールが吐くログはナニヲイッテルノカワカラン。 なので、こんな

記事を読む

no image

【java】【objective-c】Java vs Objective-C 言語比較

Java人間がObjective-Cを勉強するにあたって一番苦労するのは文法に関するネーミングの違い

記事を読む

no image

【objective-c】正規表現

NSString* targetStr = @"19801231&qu

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

no image
知らないと損をする6つのライセンスまとめ

オープンソースやフリーウェア、フリー素材などが巷に溢れ、それらを利用す

no image
ガリレオ:ニュースブラウザをリリースしました。

概要 ガリレオはニュースを読んだり、検索する機能に特化したブラウザア

no image
【android】Activityとプロセスのライフサイクル

またもやライフサイクル周りでハマったのですが、Androidのライフサ

→もっと見る

PAGE TOP ↑