Проблема приведения типа int к NSString - PullRequest
0 голосов
/ 03 декабря 2010

Я работаю над приложением для iPhone, которое использует несколько URL-адресов, и я испытываю трудности с добавлением целых чисел в их конец.У меня есть следующая строка кода

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

, мне нужно просто добавить int в конец.Когда я распечатываю результаты NSURL urlCards, я просто получаю значение int, которое я передаю, или значение _deckID.

Я проверил, что _deckID, который объявлен просто как локальныйint действительно имеет правильное значение во время выполнения.

Чего мне не хватает?

Спасибо !!

Ответы [ 3 ]

1 голос
/ 03 декабря 2010

То, с чем вы столкнулись, это оператор запятой. Оператор запятой оценивает каждый из своих операндов на предмет их побочных эффектов и вычисляет результат последнего выражения. Например:

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 голосов
/ 03 декабря 2010
NSString *urlString=[NSString stringWithFormat:@"http://website.edu/get_stuff/%d",_stuffID];
NSURL *urlCards = [[NSURL alloc] initWithString:urlString];

используйте это, чтобы решить вашу проблему.

0 голосов
/ 03 декабря 2010

Почему вы не можете попробовать это так:

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