나는 논리 문제가 있습니다. 다른 클래스의 객체 인스턴스에 액세스해야합니다.언제든지 다른보기 컨트롤러에서 생성 된 개체에 액세스하기
나는 FacebookController
이라는 클래스가 있습니다. 여기에는 여러 개의 대리자 메서드가 있습니다 (예 : fbDidLogin
). 먼저 facebookloginButtonClicked
메서드는 사용자가 버튼을 클릭 할 때 실행되고 내부 처리가 완료되면 fbDidLogin
메서드가 호출되어 사용자가 응용 프로그램에 로그인합니다. (이 모든 것은 완벽하게 작동합니다).
이제 애플리케이션에서 로그 아웃해야합니다. logout
이라는 대리자 메서드가 있는데이 메서드를 [facebook logout]
이라고 부릅니다.
-(void) logoutFacebook
이라는 메서드를 추가했습니다. 사용자가 로그 아웃 버튼을 클릭하면 다음과 같은 메서드가 호출됩니다. 로그 아웃 방법은 다음과 같습니다. 내가 로그 아웃 같은의 ViewController에서 을 (logoutFacebook
메서드를 호출 할) 경우
-(void) logoutFacebook {
[facebook logout];
}
로그 아웃에만 작동합니다. 예를 들어
내가 Student
라는 클래스에서 오전 경우
FacebookController
의 logoutFacebook
메소드를 호출하는 것을 시도하고있다. 나의 접근 방식은 다음과 같다. 이렇게함으로써, FacebookController
의 새 인스턴스를 만들 것이기 때문에 FacebookController *facebookController = [[FacebookController alloc]]init;
[facebookController logoutFacebook];
이 작동하지 않습니다. 그래서 나는 FacebookController
(로그인 후 생성 된)에 있던 원래 facebook
객체에 어떻게 든 접근해야합니다. 이 객체에 액세스하려면 어떻게해야합니까?
+ (FacebookController *) sharedInstance
구현에 다음 함수를 추가 @implementation 위
static FacebookController* Object;
을이 코드를 추가
-(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];
}
답장을 보내 주셔서 감사합니다. 나는 그것을 google 할 것이다. 추천하는 튜토리얼이 있습니까? – shajem