Objective c stringWithContentsofurl生成泄漏

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

我试图通过网络获取数据

NSString*string=[NSString stringWithContentsOfURL:[NSURL URLWithString:url]]

一切正常,但当我用性能工具运行它时,它会在这条线上发现漏洞

以下是我使用的全部方法:

- (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。谢谢,我不知道这一点。