【发布时间】:2011-12-17 19:43:33
【问题描述】:
NSString *hostStr2 = [[NSString alloc] initWithFormat:@"http://%@/getplaylist.php?ip=%@",yourip,restip];
NSLog(@"XMLAppDelegate checkstatusthread call to php for status,playlist and nowplaying XML's %@" ,hostStr2);
NSData *dataURL2 =[NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr2 ]];
[hostStr2 release];
NSString *playlistdata=[[NSString alloc] initWithData:dataURL2 encoding:NSASCIIStringEncoding];
NSArray *ipItemsArray;
// memory leak showing at below line
ipItemsArray =[playlistdata componentsSeparatedByString:@"|^|"];
[playlistdata release];
我在 ipItemsArray 中存储的是一个用分隔符“|^|”分隔的大型 XML 数据。 问题是当我运行它时,它会在这个数组中产生内存泄漏。 是否有任何其他类型的数组可以使用,或者有人可以更好地优化此代码,以便我可以摆脱发生的内存泄漏。
【问题讨论】:
-
是什么让你认为那条线路在泄漏?你用过什么工具?我在这段代码中看不到任何内存泄漏,有问题的行是创建一个自动释放的数组。
-
同意以上观点。代码很好,但如果 ipItemsArray 是您想要保留的 IVAR,则需要在创建自动释放数组时保留它。
-
在 Profile 下的 XCode 中,我使用了名为 Leaks 的工具来查找泄漏。当我在此配置文件下运行它时,它在上面的行代码中显示内存泄漏。顺便说一句,这仅在我们将其连接到 iPhone 并使用此分析工具时才有效。
标签: iphone arrays xcode memory-leaks