2010-04-29 2 views
13

Я не знаю, чего здесь не хватает. Я пытаюсь объединить строки с помощью функции [NSString stringWithFormat]. Это то, что я делаю.NSString stringWithFormat

NSString *category = [row objectForKey:@"category"]; 
NSString *logonUser = [row objectForKey:@"username"]; 
user.text = [NSString stringWithFormat:@"In %@ by %@", category, logonUser]; 

Проблема в том, что она всегда печатает только одну переменную. Скажем, есть ли «Спорт» в категории и «Лев» в logonUser, он напечатает «In Sports» и пропустит оставшийся текст. Он должен напечатать «В спорте Лео».

+0

Где декларация для категории? Убедитесь, что это NSString *, а не что-то еще. – lucius

ответ

15

user a UILabel? Убедитесь, что ваш текст не обертывается или не обрезается. Попробуйте сделать UILabel больше.

0

В чем смысл первой строки в этом коде? Кажется, это не связано с третьей строкой?

Вы действительно уверены, что как категория, так и logonUser указаны в коде? Возможно, поместите инструкцию NSLog сразу после строки user.text = и убедитесь, что у них есть значения, которые вы ожидаете, потому что ваша 3-я строка выглядит нормально.

Редактировать

Я бы попытаться изменить

user.text = [NSString stringWithFormat:@"In %@ by %@", category, logonUser]; 

в

user.text = [NSString stringWithFormat:@"In %@ by %@", @"category", @"logonUser"]; 

и посмотреть, если это выводит In category by logonUser. Потому что это наверняка выглядит правильно для меня.

+0

Прошу прощения за ошибку. Объявление категории ниже. Я случайно скопировал неправильную строку. NSString * category = [row objectForKey: @ "category"]; Да, я пробовал NSLog, и они заполнены. Есть идеи? – Leo

1

Код выглядит правильно:

любым шансом будут у получать возврат каретки или лишние пробелы в переменной категории? В случае небольшой метки она может не отображать полную строку. Попробуйте поменять местами две переменные в третьей строке и посмотреть, что такое выход.

Я сбиваю с толку, что даже «по» отсутствует на выходе. У меня такое чувство, что значение переменной категории маскирует текст.

+0

Ваш ответ охватывает все проблемы, с которыми столкнулся пускатель потоков. Я не знаю, почему ваш ответ не помечен как правильный ответ или, по крайней мере, поддержан ... – winklerrr

5

Вы должны попробовать:

NSlog(@"In %@ by %@", category, logonUser); 

Чтобы проверить эту проблему! Дайте мне знать результаты на консоли отладчика XD

+0

Хорошее предложение. Я пробовал NSLog и печатался в двух строках. Я думаю, что категория имеет возврат каретки. Как я могу удалить возврат каретки и ненужные пробелы? Спасибо – Leo

+0

Извините за поздний ответ! Вы можете использовать это -> - (NSString *) substringWithRange: (NSRange) aRange И для диапазона вы можете это сделать -> NSRange * myRange = NSRangeMake (x, y); –

 Смежные вопросы

  • Нет связанных вопросов^_^