2012-11-19 419 views
1

我怎樣才能讓一個視圖控制器單,以然後使用此代碼:辛格爾頓的viewController

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

+0

單身不好,你沒有得到備忘錄嗎? –

+0

不,這是什麼 – Alessandro

+0

它主要是偏離主題,但單身主要是一種反模式(即它不是有用的,甚至是_harmful_使用它)。查看[這個問題](http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons)瞭解更多詳情。 –

回答

2

這不一定是一個單身人士。單身人士在任何時間只能有一個實例。共享實例類似,但不阻止創建其他實例。

你可以用一個靜態變量和一個類的方法是這樣實現共享實例:

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

不要忘記聲明類方法在你的頭。

+0

它仍然不起作用 – Alessandro

+0

我的代碼是正確的,我自己在一個項目中使用它。發佈「它不工作」是沒有用的。闡述! – DrummerB

+0

對不起,它說共享管理器沒有聲明無處:「選擇器sharedManager沒有已知的類方法」 – Alessandro