我怎樣才能讓一個視圖控制器單,以然後使用此代碼:辛格爾頓的viewController
FacebookManager *manager = [FacebookManager sharedManager];
[manager openSessionWithAllowLoginUI:NO]
?
我怎樣才能讓一個視圖控制器單,以然後使用此代碼:辛格爾頓的viewController
FacebookManager *manager = [FacebookManager sharedManager];
[manager openSessionWithAllowLoginUI:NO]
?
這不一定是一個單身人士。單身人士在任何時間只能有一個實例。共享實例類似,但不阻止創建其他實例。
你可以用一個靜態變量和一個類的方法是這樣實現共享實例:
+ (FacebookManager *)sharedManager
{
static FacebookManager *shaderManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
shaderManager = [[FacebookManager alloc] init];
});
return shaderManager;
}
不要忘記聲明類方法在你的頭。
它仍然不起作用 – Alessandro
我的代碼是正確的,我自己在一個項目中使用它。發佈「它不工作」是沒有用的。闡述! – DrummerB
對不起,它說共享管理器沒有聲明無處:「選擇器sharedManager沒有已知的類方法」 – Alessandro
單身不好,你沒有得到備忘錄嗎? –
不,這是什麼 – Alessandro
它主要是偏離主題,但單身主要是一種反模式(即它不是有用的,甚至是_harmful_使用它)。查看[這個問題](http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons)瞭解更多詳情。 –