+(NSString *)decodeFromPercentEscapeString :( NSString *)字符串潜在泄漏

时间:2012-09-29 10:54:16

标签: nsstring memory-leaks

我在分析代码时遇到了问题。

特别是这种方法。

我把这条线放在网上。它运作良好,但我收到了Portential泄漏消息

对象可能发生泄漏。 (返回时)。

// Encode a string to embed in an URL.    
+ (NSString *)encodeToPercentEscapeString:(NSString*)string {
        return (NSString *)
        CFURLCreateStringByAddingPercentEscapes(NULL,
                                                (CFStringRef) string,
                                                NULL,
                                                (CFStringRef) @"!*'();:@&=+$,/?%#[]",
                                                kCFStringEncodingUTF8);
    }

    // Decode a percent escape encoded string.
    + (NSString *)decodeFromPercentEscapeString:(NSString *)string {
        return (NSString *)
        CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL,
                                                                (CFStringRef) string,
                                                                CFSTR(""),
                                                                kCFStringEncodingUTF8);
    }

感谢。

1 个答案:

答案 0 :(得分:1)

我刚发现这篇文章: iPhone memory leaking?

我必须使用CFRelease();

释放CFString
+ (NSString *)encodeToPercentEscapeString:(NSString*)string {

    CFStringRef str = CFURLCreateStringByAddingPercentEscapes(NULL,
                                            (CFStringRef) string,
                                            NULL,
                                            (CFStringRef) @"!*'();:@&=+$,/?%#[]",
                                            kCFStringEncodingUTF8);


    NSString *s = [NSString stringWithString:(NSString *)str];
    CFRelease(str);

    return s;
}