Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios5 ios中的URL编码字符串失败_Ios5_Automatic Ref Counting_Urlencode_Cfstring - Fatal编程技术网

Ios5 ios中的URL编码字符串失败

Ios5 ios中的URL编码字符串失败,ios5,automatic-ref-counting,urlencode,cfstring,Ios5,Automatic Ref Counting,Urlencode,Cfstring,我正在尝试使用ARC对iOS 5应用程序中的字符串进行url编码 我就是这样做的: - (NSString *)escape:(NSString *)text { return (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, (__bridge CFStringRef)text, NULL,

我正在尝试使用ARC对iOS 5应用程序中的字符串进行url编码

我就是这样做的:

- (NSString *)escape:(NSString *)text
{
    return (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
                                          (__bridge CFStringRef)text, NULL,
                                          (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                          kCFStringEncodingUTF8);
}
然后我用如下测试数据将其称为:

NSLog([self escape:@"kalel///&&&???"]);
但是我从
NSLog
得到的输出是:

kalel0.0000000.0000000.00000022623F0.0000000.000000

这似乎不太正确,但不管怎样,我都无法正确执行您的
escape
功能很好。问题在于您调用
NSLog
的方式:

escape
为您的输入生成字符串
kalel%2F%2F%2F%26%26%3F%3F%3F
NSLog
将此字符串解释为格式字符串,并在
kalel
word之后以浮点数形式打印一些垃圾

您应该始终使用字符串常量作为第一个参数调用
NSLog
,例如:

NSLog(@"%@", [self escape:@"kalel///&&&???"]);
p.S.您在
转义
中有内存泄漏---在将保留的CF对象转移到目标C空间时,您应该
返回(\uuu bridge\u transfer NSString*)