我在分析代码时遇到了问题。
特别是这种方法。
我把这条线放在网上。它运作良好,但我收到了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);
}
感谢。
答案 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;
}