openURL方法使用字符串,但不使用包含相同字符串的变量

时间:2014-06-13 16:05:46

标签: ios objective-c

编辑:我弄清楚出了什么问题,但由于我是新用户,因此无法发布答案。我会尽可能地发布我的解决方案。

我正在使用此代码在iPhone的网络浏览器中打开一个链接:

NSString *url;
NSLog(@"%d", [sender tag]);
if([sender tag] == 0) 
    url = [approvedDict objectForKey:@"ig"];
else if([sender tag] == 1) 
    url = [approvedDict objectForKey:@"yt"];
else if([sender tag] == 2) 
    url = [approvedDict objectForKey:@"tw"];
else if([sender tag] == 3) 
    url = [approvedDict objectForKey:@"pt"];
else if([sender tag] == 4) 
    url = [approvedDict objectForKey:@"fb"];
NSLog(@"%@", url);
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: url]];

使用此代码时(按下按钮的目标操作),没有任何反应。但是,如果我使用 NSLog(@“%@”,url)给出的EXACT字符串,并将其放在“url”位于最后一行的位置。我对发生的事感到难过;有谁有任何线索?感谢。

1 个答案:

答案 0 :(得分:0)

如果网址有任何特殊字符,则需要百分比转义它们。

而不是像这样打开网址:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString: url]];

添加

NSString *encodedString = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *urlToOpen = [NSURL URLWithString: encodedString];
[[UIApplication sharedApplication] openURL:urlToOpen];