我正在使用一个使用一些网址的iPhone应用程序,我遇到了困难,在它们的末尾添加了一些内容。我有以下代码行
NSURL *urlCards = [[NSURL alloc] initWithString:(@"http://website.edu/get_stuff/%@",[NSString stringWithFormat:@"%d",_stuffID])];
我需要简单地将一个int附加到末尾。当我打印出NSURL urlCards的结果时,我只是得到我传入的int的值,或者_deckID的值。
我已经验证了仅仅声明为本地int的_deckID确实在运行时具有正确的值。
我错过了什么?
谢谢!
答案 0 :(得分:1)
您遇到的是逗号运算符。逗号运算符计算其每个操作数的副作用,并计算最后一个表达式的结果。例如:
int i;
int j;
int z;
z = (i = 4, j = 3, i + j);
// z is now 7
你在这里得到了什么:
(@"http://website.edu/get_stuff/%@",[NSString stringWithFormat:@"%d",_stuffID])
评估到
[NSString stringWithFormat:@"%d", _stuffID]
这是因为第一部分@"..."
是一个没有副作用的表达式,逗号运算符的结果是[NSString stringWithFormat:]
方法的结果。
我在想什么,我想:
NSString *urlString = [NSString stringWithFormat:@"http://website.edu/get_stuff/%d",_stuffID];
NSURL *urlCards = [[NSURL alloc] initWithString:urlString];
您也可以在一行中完成,例如KingofBliss的回答。
答案 1 :(得分:0)
为什么你不能这样做:
NSURL *urlCards = [[NSURL alloc] initWithString:[NSString stringWithFormat:@"http://website.edu/get_stuff/%d",_stuffID]];
答案 2 :(得分:0)
NSString *urlString=[NSString stringWithFormat:@"http://website.edu/get_stuff/%d",_stuffID];
NSURL *urlCards = [[NSURL alloc] initWithString:urlString];
使用它可以解决您的问题。