2009-02-24 96 views
1

我的iPhone應用程序需要爲表單參數做一些URL轉義序列編碼。 NSString stringByAddingPercentEscapesUsingEncoding作爲stringByAddingPercentEscapesUsingEncoding並不是很多。這是我所擁有的免費橋接和內存管理

-(NSString*)currentMessageUrlEncoded{ 
    CFStringRef originalURLString = (CFStringRef) self.currentMessage; 
    CFStringRef urlString = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, originalURLString, NULL, (CFStringRef) @"&+", kCFStringEncodingUTF8); 
    NSString *result = (NSString*) urlString; 
    [result autorelease]; // Is this sufficient? 
    return result; 
} 

我不確定這裏的內存管理嗎?結果上的autorelease是否足夠了,還是我完全吠叫了錯誤的樹?

回答

3

Yes it is。你甚至可以縮短你的方法:

- (NSString *)urlEncodedMessage:(NSString *)message { 
    CFStringRef urlString = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef) message, NULL, (CFStringRef) @"&+", kCFStringEncodingUTF8); 
    return [(NSString *)urlString autorelease]; 
} 
+0

感謝您的答案和鏈接。 (原來的方法比較短,順便說一句;我擴展它強調我所要求的部分)。 – 2009-02-24 20:15:18