Iphone Safari中打开URL失败

Iphone Safari中打开URL失败,iphone,Iphone,我创建了我的应用程序。我需要在iPhone中打开URL,直接查看safari 我的代码如下: NSString *email = [NSString stringWithFormat:@"http://itunes.apple.com/us/album/music/id186152317?i=186153149&uo=4"]; email = [email stringByAddingPercentEscapesUsingEncoding:NSASCII

我创建了我的应用程序。我需要在iPhone中打开URL,直接查看safari

我的代码如下:

        NSString *email = [NSString stringWithFormat:@"http://itunes.apple.com/us/album/music/id186152317?i=186153149&uo=4"];
         email = [email stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
         NSURL *url = [NSURL URLWithString:email];
         if (![[UIApplication sharedApplication] openURL:url])
         NSLog(@"%@%@",@"Failed to open url:",[url description]);
         [super viewDidLoad];
但我的问题是,Safari视图已打开。但是URL没有打开。它显示出错误。错误是

无法打开页面safari无法打开页面,因为地址无效

但URL是在浏览器中打开的


有人知道使用Objective C在iPhone中的Safari中打开此URL的解决方案吗?

将编码更改为“
NSUTF8StringEncoding

也请检查编码完成后您的链接

uo=4

更改为

ign mpt=uo%3D4


快乐的图标…

奇怪,因为Mac上的Safari不会抱怨


但是如果您将url替换为
http://itunes.apple.com/us/album/music/id186152317
它似乎也适用于iPhone。

您的问题是不应该对整个URL进行URL编码。您应该只对查询字符串中每对的键和值进行编码。换句话说,URL编码:
i
186153149
uo
4
。没有别的了。(从技术上讲,你甚至不需要对它们进行编码,因为它们都是ASCII字母数字字符集,不需要编码)

你可以使用它来获得准确的链接。希望它能帮助你更好地使用apple文档中的NSURLconnection。