2010-08-20 1 views
0

Это первый раз, когда я задаю вопрос здесь. Обычно я нашел помощь в Интернете для своих проблем с проектами Iphone, но здесь я ДЕЙСТВИТЕЛЬНО СТУК!fbconnect logout утечка памяти

Я использую facebook iphone-sdk для размещения информации на стене пользователя. Все работает нормально. Но у меня есть память утечки, когда я выхожу из системы с помощью кнопки входа в fbconnect.

Вот код, который я использовал в файле реализации для теста:

- (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"); 
} 

, как вы видите, я ничего не делал. Поэтому, когда я тестирую это приложение, я нажимаю соединение на facebook buton, и я вхожу в систему без проблем. Но когда я нажимаю ту же кнопку, которая теперь помечена как logout, я выхожу из системы, а затем сразу же появляется утечка памяти.

В инструментах я могу найти происхождение проблемы, и это заставляет, что это метод выхода в файл FBSession.m, который вызывает эту утечку. И особенно когда метод unsave вызывается из метода выхода, потому что, если я прокомментирую вызов, утечки памяти не отображаются.

Так что мне нужна помощь, чтобы выяснить, что вызывает это.

+0

Не уверен в объекте сеанса ... возможно, вы также должны отпустить это (вы можете сделать это уже) в viewDidUnload и dealloc. Сколько памяти и какой объект вы протекаете? Кроме того, если это всего лишь несколько байтов и работает, я бы не стал отлаживать FB API :-) – Eiko

+0

как вы можете вызвать сеанс для выхода из системы? Что является небезопасным методом? – vodkhang

ответ

0

Я новичок сам, но укладываю [super viewDidLoad] сверху вместо нижней справки? Мы добавляем вашу информацию сессии в представление, и мы ожидаем, что она будет добавлена ​​после загрузки всех представлений родительского класса.

+0

Да, viewDidLoad следует надеть сверху, но я не думаю, что это может вызвать проблемы здесь. – vodkhang

 Смежные вопросы

  • Нет связанных вопросов^_^