在NSString中包含一个变量?

时间:2011-09-26 04:15:45

标签: objective-c nsstring string-formatting string-concatenation

这很好用,我们都知道:

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

但是,如果要在NSString语句中包含变量,如下所示:

NSString *textoutput =@"Hello" Variable;

在C ++中,我知道当我cout时,我想要包含一个变量,我所做的就像这样:

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

所以我试图用Objective-C来实现它,但我不知道如何。

2 个答案:

答案 0 :(得分:15)

您可以使用以下功能进行一些奇特的格式化:

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

请注意,%@假定variable是Objective-C对象。如果它是C字符串,请使用%s,如果是其他任何C类型,请查看printf引用。

或者,您可以通过将字符串附加到现有字符串来创建新字符串:

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

请注意NSString是不可变的 - 一旦指定了值,就无法更改它,只能派生新对象。如果您要在字符串中添加很多内容,则应该使用NSMutableString代替。

答案 1 :(得分:5)

我有你正在寻找的治疗,罗伯特史密斯:

如果你的变量是一个对象,请使用:
NSString *textOutput = [NSString stringWithFormat:@"Hello %@", Variable];

'%@'仅适用于对象。对于整数,它是'%i'。

对于其他类型,或者如果您希望对其生成的字符串更具体,use this guide