2010-08-25 2 views
0

Я хотел бы отобразить содержимое массива NSMutable в метке.NSArray в метке

У меня есть следующий код, который отображает только последний объект. Каким будет метод отображения ВСЕХ объектов в массиве (в данном случае «значения»)?

self.lblMessage.text = [NSString stringWithFormat:@"%@\n%@", 
self.lblMessage.text, [values objectAtIndex:[values count]-1]]; 

ответ

0

Обычно метка должна показывать только одну строку текста. И вы используете \ n в своем коде. Таким образом, существует несколько строк. Удалите \ n в коде или попробуйте использовать UITextView. ;-) Существует также способ заставить UILabel отображать несколько строк, но я не знаю, что один на ходу ...

2

Чтобы получить все значения в NSArray, соединенные разделителем типа ",", используйте [values componentsJoinedByString:@", "]. Разумеется, разделитель может быть «\ n», если вам нравится, но вам нужно убедиться, что ваш ярлык или текстовое поле поддерживает несколько строк.

Кроме того, ваш [values objectAtIndex:[values count]-1] может быть лучше выражен как [values lastObject]. :)

+0

Они не должны быть NSStrings, 'componentsJoinedByString:' 'использует метод description', так до тех пор, как компоненты имеют осмысленное описание он будет хорошо работать. – dreamlax

+0

@dreamlax Ах! Обновлено. –

3

После код должен делать то, что вам нужно:

label.numberOfLines = 0; // to make sure your label is able to display multiple lines 
label.text = [values componentsJoinedByString:@"\n"]; //insert separator symbol you need in place of "\n" 
Смежные вопросы