У меня проблема с логикой. Мне нужно получить доступ к экземпляру объекта из другого класса.
У меня есть класс с именем FacebookController
. В нем есть несколько методов делегата, например fbDidLogin
. Сначала метод facebookloginButtonClicked
выполняется, когда пользователь нажимает кнопку, и после некоторой внутренней обработки вызывается метод fbDidLogin
, и пользователь входит в приложение. (Все это прекрасно работает).
Теперь мне нужно выйти из приложения. Есть метод делегата с именем logout
, и я должен вызвать его как [facebook logout]
.
Я добавил метод с именем -(void) logoutFacebook
. Когда пользователь нажимает кнопку выхода из системы, вызывается следующий метод. Метод выхода из системы следующий:
-(void) logoutFacebook {
[facebook logout];
}
Выход из системы работает только при выходе из системы (вызов метода logoutFacebook
) из того же viewController .
Например, если я нахожусь в классе с именем Student
, я пытаюсь вызвать метод logoutFacebook
для FacebookController
. Мой подход заключается в следующем;
FacebookController *facebookController = [[FacebookController alloc]]init;
[facebookController logoutFacebook];
Это не работает, потому что при этом он создаст новый экземпляр FacebookController
. Поэтому мне нужно каким-то образом получить доступ к исходному объекту facebook
, который был в FacebookController
(который был создан после входа в систему). Как мне получить доступ к этому объекту?
код:
-(void)facebookloginButtonClicked:(id)sender{
facebook = [[Facebook alloc] initWithAppId:@"3232232" andDelegate:self];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![facebook isSessionValid]) {
[facebook authorize:nil];
}
}
- (void)fbDidLogin {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[ facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[ facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
}
-(void) logoutFacebook {
[facebook logout];
}