Утечка памяти клиента GData Objective C

У меня есть метод, в котором я извлекаю записи GDataFeedBase и возвращаю их в виде массива другой функции.

NSMutableArray *tempFeedArray = [NSMutableArray array]; 
NSURL *feedURL = [[NSURL alloc] initWithString:escapedUrlString];
NSData *data = [NSData dataWithContentsOfURL:feedURL];
GDataFeedBase *feedBase = [[GDataFeedBase alloc] initWithData:data];
[tempFeedArray addObjectsFromArray:[feedBase entries]];
[feedURL release];
[feedBase release];
return tempFeedArray;

.....

У меня есть другая функция, в которой я извлекаю необходимые значения из объекта tempFeedArray, который является GDataEntryYouTubeVideo.

  for(int count  = 0; count < loopCount; count ++){
        NSMutableDictionary *feedBaseEntryDict = [[NSMutableDictionary alloc] init];

        entry = [tempFeedArray objectAtIndex:count];


        youTubeUrl = [[entry alternateLink] href];


        if ([entry statistics]!= nil) {
            noOfVws= [[[entry statistics] viewCount] intValue];

        }

        duratn = [[[entry mediaGroup] duration] stringValue];
        descr = [[[entry mediaGroup] mediaDescription] stringValue];
        authorName = [[[entry authors] objectAtIndex:0] name];
        publishedDt = [[entry publishedDate] stringValue];
        rating = [[[entry rating] average] stringValue];
        imageURL = [[[[entry mediaGroup] mediaThumbnails] objectAtIndex:0] URLString];
        videoTitle = [[[entry mediaGroup] mediaTitle] stringValue];

  .....
 }



......

В первый раз все работает нормально. Но в следующий раз он показывает утечку памяти в GDataXMLNode stringFromXMLString:

Кто-нибудь еще сталкивался с этой проблемой?

Я обнаружил похожую проблему, поднятую на форуме разработчиков gdata: http://groups.google.com/group/gdata-objectivec-client/browse_thread/thread/f88de5a7bb784719/cab328a8725ee6c5

но решение не решает проблему.

Любая помощь горячо приветствуется.


person random    schedule 27.04.2011    source источник


Ответы (2)


Похоже, это может быть не ваш код, а клиентская библиотека, было несколько других потоков по той же проблеме. Это обходной путь, но я сам не пробовал.

Другие варианты, которые у вас есть, - это обновить до последней версии (1.12 была выпущена 11 апреля 2011 г.), взгляните на source и попытайтесь отследить проблему или отправьте issue (похоже, проект все еще активно развивается).

person mistagrooves    schedule 27.04.2011

Поскольку код «ворует» записи из ленты, оставляя их указывающими на родительскую ленту (а не копируя записи, что создает независимые версии), может возникнуть проблема с кешем строк. Попробуйте отключить кэш, закомментировав -addStringsCacheToDoc в GDataXMLNode.m.

person grobbins    schedule 27.04.2011
comment
Комментирование кода внутри -addStringsCacheToDoc в GDataXMLNode.m не помогло. Все еще получаю утечки. - person random; 28.04.2011