0

我正在开发一个使用一些 url 的 iPhone 应用程序,并且在将整数附加到它们的末尾时遇到了困难。我有以下代码行

        NSURL *urlCards = [[NSURL alloc] initWithString:(@"http://website.edu/get_stuff/%@",[NSString stringWithFormat:@"%d",_stuffID])];

我只需要在末尾附加一个 int 即可。当我打印出 NSURL urlCards 的结果时,我只是得到了我传入的 int 的值,或者 _deckID 的值。

我已经验证了仅声明为本地 int 的 _deckID 在运行时确实具有正确的值。

我错过了什么?

谢谢!!

4

3 回答 3

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 的回答一样。

于 2010-12-03T04:44:07.093 回答
0

为什么你不能这样尝试:

NSURL *urlCards = [[NSURL alloc] initWithString:[NSString stringWithFormat:@"http://website.edu/get_stuff/%d",_stuffID]];
于 2010-12-03T04:36:55.630 回答
0
NSString *urlString=[NSString stringWithFormat:@"http://website.edu/get_stuff/%d",_stuffID];
NSURL *urlCards = [[NSURL alloc] initWithString:urlString];

使用它可以解决您的问题。

于 2010-12-03T04:43:33.017 回答