2010-08-20 3 views
0

여기에 질문을 게시하는 것은 이번이 처음입니다. 보통, 나는 나의 아이폰 프로젝트 문제에 대한 웹상에서 도움을 찾았지만, 여기 정말 STUCK입니다!fbconnect 로그 아웃 메모리 누수

나는 facebook iphone-sdk를 사용하여 사용자의 벽에 몇 가지 정보를 게시합니다. 모든 것이 잘 작동합니다. 하지만 fbconnect loginbutton으로 로그 아웃 할 때 메모리가 누출됩니다. 당신은 내가 아무것도하지 않았다 참조로

- (void)viewDidLoad { 

    //session facebook 
    session = [[FBSession sessionForApplication:@"APP_KEY" 
               secret:@"SECRET_KEY" 
               delegate:self] retain]; 


    //facebook bouton connect 
    FBLoginButton *logButton = [[[FBLoginButton alloc] init] autorelease]; 
    [self.view addSubview:logButton]; 

    [super viewDidLoad]; 
} 


- (void) session:(FBSession *) session didLogin:(FBUID) uid { 
    NSLog(@"login ok"); 
} 

- (void)sessionDidLogout:(FBSession*) session { 
    NSLog(@"didLogOut called"); 
} 

: 여기

내가 테스트 구현 파일에 사용 된 코드입니다. 그래서이 응용 프로그램을 테스트 할 때, 나는 페이스 북에 연결을 밀어 buton과 나는 문제없이 로그인. 그러나 지금 로그 아웃 된 것과 동일한 버튼을 누르면 로그 아웃 한 후 바로 메모리 누수가 나타납니다.

악기에서 나는 문제의 근원을 발견 할 수 있으며,이 누출을 일으키는 FBSession.m 파일의 로그 아웃 방법이라는 것을 알 수 있습니다. 특히 내가 호출에 주석을 달면 메모리 누수가 나타나지 않기 때문에 로그 아웃 메서드에서 unsave 메서드가 호출 될 때 특히 그렇습니다.

그래서이 문제의 원인을 파악하는 데 도움이 필요합니다.

+0

세션 개체에 대해 잘 모르는 경우 ... 아마도 viewDidUnload 및 dealloc에서이를 이미 해제해야합니다. 얼마나 많은 기억과 어떤 물건을 누출합니까? 또한, 그것은 단지 몇 바이트이고 작동하는 경우 FB API를 디버깅하는 것을 귀찮게하지 않을 것입니다 :-) – Eiko

+0

어떻게 세션을 로그 아웃 할 수 있습니까? unsave 방법은 무엇입니까? – vodkhang

답변

0

나는 초보자이지만 밑의 도움 대신 상단에 [super viewDidLoad]를 두는가? 뷰에 세션 정보를 추가하는 중이고 모든 부모 클래스 뷰가로드 된 후에 세션 정보가 추가 될 것으로 기대합니다.

+0

그래, viewDidLoad 맨 위에 넣어해야하지만 여기에 문제가 발생할 가능성이 있다고 생각하지 않습니다. – vodkhang