2009-10-05 3 views
4

Я начинаю разрабатывать для iPhone. У меня есть начинающий типа вопрос, я уверен:Добавление строки в текст UILabel?

У меня есть это, который работает:

testLabel.text = [NSString stringWithFormat:@"%@ to %@", testLabel.text, newLabelText]; 

Я хотел бы использовать «+ =» оператор, но я получаю ошибку компиляции (Недействительные операнды бинарной +, у 'STRUCT NSString *' и 'структура NSString *):

testLabel.text += [NSString stringWithFormat:@"to %@", newLabelText]; 

Почему я не могу это сделать?

Также, как я могу сократить свой первый фрагмент кода?

+0

Попробуйте использовать это решение для публикации [здесь] (http://stackoverflow.com/questions/510269/how-do-i-concatenate-strings-in-objective-c). – luvieere

ответ

5

Вы не можете использовать оператор +=, потому что C и Objective-C не позволяют перегрузке оператора. Вы пытаетесь использовать += с двумя типами указателей, что недопустимо - если левая часть выражения += имеет тип указателя, то правая часть должна быть целочисленной, а результат указатель арифметики, который не является тем, что вы хотите в этом случае.

5

Подумайте об использовании NSMutableString - вы можете использовать метод appendString:, как:

NSMutableString *str = [@"hello" mutableCopy]; 
[str appendString:@" world!"];
2

Это не может быть сделано, потому что ObjectiveC не поддерживает его, ObjectiveC небольшой слой над С.

testLabel.text = [testLabel.text stringByAppendingFormat:@" to %@", newLabelText]; 
1

NSString НЕ изменяемые (их нельзя изменить), поэтому вы не можете использовать + =.

NSMutableString может быть изменен. Вы могли бы использовать их здесь.

Ваш код уже довольно минимальный. Objective-C - выразительный язык, поэтому просто привыкайте к длинной, описательной функции и именам переменных.

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