Утечка из твиттера TWRequest обработчик - PullRequest
2 голосов
/ 21 февраля 2012

Завершение моего первого проекта с использованием ARC.Вообразите мое удивление тогда, чтобы обнаружить утечку почти немедленно.Есть ли у кого-нибудь понимание того, почему следующий код может вытекать с идентификатором символа: 'dispatch_queue_create':

При этом используется слишком упрощенный обработчик TWRequest в iOS5 с ARC:

- (void)loadSomeTweets
{


NSString *queryString = [NSString stringWithString:@"http://search.twitter.com/search.json?"];
NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:@"%23WatchingTheVoice", @"q", nil];

NSURL *targetedSearchURL = [NSURL URLWithString:queryString];
TWRequest *targetedRequest = [[TWRequest alloc] initWithURL:targetedSearchURL
                                                 parameters:parameters
                                              requestMethod:TWRequestMethodGET];


[targetedRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) 
 {
    //Do something

 }];

}

Почему эта утечка?Стек вызовов подразумевает executeRequestWithHandler, но утечка происходит независимо от того, что я делаю в обработчике обратного вызова, даже пустая реализация (как показано здесь) создает утечку.Утечка происходит на симуляторе и устройствах.

1 Ответ

0 голосов
/ 21 февраля 2012

Эта проблема является результатом утечки памяти в фреймворке Apple в Twitter.

...