2010-12-03 39 views
0

我正在使用一些url的iPhone應用程序,我遇到了難以將int添加到它們的末尾。我有以下代碼行鑄造一個int作爲NSString的問題

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

我需要簡單地將一個int附加到末尾。當我打印出NSURL urlCards的結果時,我只需獲取我傳入的int值或_deckID的值。

我已經驗證了_deckID只聲明爲本地int,在運行時的確具有正確的值。

我錯過了什麼?

謝謝!

回答

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的答案。

0

Ÿ着ü嘗試這樣,

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

利用這一點,解決您的問題。