1

ビューコントローラーシングルトンを作成して、このコードを使用するにはどうすればよいですか:

FacebookManager *manager = [FacebookManager sharedManager];
[manager openSessionWithAllowLoginUI:NO]

??

4

1 に答える 1

2

それは必ずしもシングルトンではありません。シングルトンは、一度に 1 つのインスタンスしか持つことができません。共有インスタンスも同様ですが、追加のインスタンスの作成を妨げません。

次のように、静的変数とクラス メソッドを使用して共有インスタンスを実装できます。

+ (FacebookManager *)sharedManager
{
    static FacebookManager *shaderManager = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        shaderManager = [[FacebookManager alloc] init];
    });
    return shaderManager;
}

ヘッダーでクラス メソッドを宣言することを忘れないでください。

于 2012-11-19T19:01:03.210 に答える