1

コードを分析すると問題が発生しました。

特にこの方法について。

私はウェブ上でこの行をまとめました。うまく動作しますが、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);
    }

ありがとう。

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 に答える