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

但解决方案并不能解决问题。

看起来它可能不是你的代码,但客户端库有几个其他线程在同一个问题上。这一个有一个工作,但我没有尝试过自己。

你的其他选择是升级到最新版本(1.12于2011年4月11日发布),查看源代码并尝试追踪你的问题,或者提交一个问题(看起来项目仍在积极开发中)

由于代码正在从提要"窃取"条目,使它们指向它们的父提要(而不是复制条目,这会创建独立的版本),因此可能存在字符串缓存的问题。尝试通过在GDataXMLNode.m中注释-addStringsCacheToDoc来禁用缓存

最新更新