Objective-CでJavaScriptのencodeURIComponent相当

http://ido.nu/kuma/2009/06/20/never-use-stringbyaddingpercentescapesusingencoding/

なるほど。

こうしました。ARC使用。

@implementation NSString (EncodeURIComponent)

- (NSString *)encodeURIComponent
{
  return (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)self, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8));
}
@end

実際のコードではメソッド名に接頭辞をつけてます。念のため。