1

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

特别是关于这种方法。

我在网上收集了这些台词。它运作良好,但我收到了一个潜在的泄漏消息

对象上的潜在泄漏。(返回时)。

// 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);
    }

谢谢。

4

1 回答 1

1

我刚刚发现这篇文章: iPhone 内存泄漏?

我必须用 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;
}
于 2012-10-01T09:51:08.737 回答