我有一个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。
答案 0 :(得分:3)
使用stringWithFormat
时,%
字符是数据参数的开头,除非它被转义。所以你需要转义它,因为你不想将它用作提供的参数。您需要使用%%2C
(因为第一个%
会转义第二个%
)。