1

如何制作视图控制器单例,然后使用此代码:

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

??

4

1 回答 1

2

那不一定是单身人士。单例在任何给定时间只能有一个实例。共享实例类似,但不会阻止创建其他实例。

您可以使用静态变量和类方法实现共享实例,如下所示:

+ (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 回答