%2C网址导致iOS应用崩溃

时间:2013-09-17 20:29:53

标签: ios cocoa-touch url nsstring nsstringencoding

我有一个iOS应用程序,可以从这个URL下载JSON提要:

https://www.googleapis.com/youtube/v3/activities?part=snippet%2CcontentDetails&home=true&maxResults=50&access_token=%@

我将URL存储在NSString中供以后使用。我还在URL的末尾添加了一个NSString,其中包含我用于OAuth身份验证的访问令牌(因此URL的最后是%@)。

以下是我存储网址的方式:

NSString *pre_yt_user_url = [NSString stringWithFormat:@"https://www.googleapis.com/youtube/v3/activities?part=snippet%2CcontentDetails&home=true&maxResults=50&access_token=%@", token_youtube];

正如您所看到的,网址的一部分有%2C

这会导致警告并使我的iOS应用程序崩溃!!

以下是我收到的警告:

Format specifies type 'unsigned-short' but the argument has type NSString

More % conversions than data arguments

我在这里做错了什么?我不能将URL存储在字符串中吗?

谢谢,Dan。

1 个答案:

答案 0 :(得分:3)

使用stringWithFormat时,%字符是数据参数的开头,除非它被转义。所以你需要转义它,因为你不想将它用作提供的参数。您需要使用%%2C(因为第一个%会转义第二个%)。