Objective c stringWithContentsofurl生成泄漏
我试图通过网络获取数据 NSString*string=[NSString stringWithContentsOfURL:[NSURL URLWithString:url]] 一切正常,但当我用性能工具运行它时,它会在这条线上发现漏洞 以下是我使用的全部方法:Objective c stringWithContentsofurl生成泄漏,objective-c,memory-leaks,Objective C,Memory Leaks,我试图通过网络获取数据 NSString*string=[NSString stringWithContentsOfURL:[NSURL URLWithString:url]] 一切正常,但当我用性能工具运行它时,它会在这条线上发现漏洞 以下是我使用的全部方法: - (NSMutableDictionary *) getOutputImagesData: (URLParserImagesData) data { NSString *type = (data == URLParserIma
- (NSMutableDictionary *) getOutputImagesData: (URLParserImagesData) data
{
NSString *type = (data == URLParserImagesDataLatestImage) ? @"img" : @"size";
NSString *url = [NSString stringWithFormat: @"%s%s%s", [URLParserSiteURLforCategories UTF8String], [URLParserType UTF8String], [type UTF8String]];
//i get leaks here
NSString *string = [NSString stringWithContentsOfURL: [NSURL URLWithString: url]];
NSArray *imagesTemp = [string componentsSeparatedByString: @","];
NSMutableDictionary *outputImages = [NSMutableDictionary dictionary];
for(NSString *img in imagesTemp)
{
NSArray *splitStrings = [img componentsSeparatedByString: @"="];
if(data == URLParserImagesDataImagesCount)
{
NSNumber *integerValue = [NSNumber numberWithInt: [[splitStrings objectAtIndex:1] intValue]];
[outputImages setObject: integerValue forKey: [splitStrings objectAtIndex:0]];
}
else
[outputImages setObject: [splitStrings objectAtIndex:1] forKey: [splitStrings objectAtIndex:0]];
}
return outputImages;
}
您的代码中没有任何错误。
stringWithContentsOfURL:
是。尝试使用stringWithContentsOfURL:encoding:error:
或stringWithContentsOfURL:usedEncoding:error:
。您可以使用[NSString-stringWithFormat:@“%@%@%@@”,URLParserSiteURLforCategories,…
来避免-UTF8String
,这解决了我的问题,非常感谢。我所要做的就是用@代替s和UTF8String。谢谢,我不知道这一点。