Включить переменную в NSString? - PullRequest
4 голосов
/ 26 сентября 2011

Это прекрасно работает, мы все знаем, что:

NSString *textoutput = @"Hello";
outLabel.text = textoutput;

Однако, что если вы захотите включить переменную в этот оператор NSString, например:

NSString *textoutput =@"Hello" Variable;

В C ++ я знаю, когда я cout что-то и хотел включить переменную, все, что я делал, было примерно так:

cout << "Hello" << variableName << endl;

Так что я пытаюсь достичь этого с помощью Objective-C, но не понимаю, как.

Ответы [ 2 ]

15 голосов
/ 26 сентября 2011

Вы можете сделать немного необычного форматирования, используя следующую функцию:

NSString *textoutput = [NSString stringWithFormat:@"Hello %@", variable];

Обратите внимание, что %@ предполагает, что variable является объектом Objective-C. Если это строка C, используйте %s, а если это любой другой тип C, посмотрите ссылку printf.

Кроме того, вы можете создать новую строку, добавив строку к существующей строке:

NSString *hello = @"Hello";
NSString *whatever = [hello stringByAppendingString:@", world!"];

Обратите внимание, что NSString является неизменным - когда вы присваиваете значение, вы не можете его изменить, только получать новые объекты. Если вы собираетесь добавлять много в строку, вам, вероятно, следует использовать NSMutableString.

5 голосов
/ 26 сентября 2011

У меня есть Cure, которое вы ищете, Роберт Смит:

, если ваша переменная является объектом, используйте это:
NSString *textOutput = [NSString stringWithFormat:@"Hello %@", Variable];

Значение "% @" будетработать только для объектов.Для целых чисел это «% i».

Для других типов или если вы хотите большей специфичности по отношению к производимой строке, используйте это руководство

...