Objective c 关于NSString添加多个字符串的简单问题

Objective c 关于NSString添加多个字符串的简单问题,objective-c,nsstring,Objective C,Nsstring,我有一个关于NSString的相当简单的问题,但是它似乎没有达到我想要的效果 这就是我所拥有的 NSString*title=[NSString stringWithformat:character.name,@“是字符”]; 这是我的解析器中的一行,它接受charactername并插入到plist中,但是它没有插入@“is the character”我有什么地方做错了吗?stringWithFormat将格式字符串作为第一个参数,因此,假设character.name是您的字符名,您需

我有一个关于NSString的相当简单的问题,但是它似乎没有达到我想要的效果

这就是我所拥有的


NSString*title=[NSString stringWithformat:character.name,@“是字符”];


这是我的解析器中的一行,它接受charactername并插入到plist中,但是它没有插入@“is the character”我有什么地方做错了吗?

stringWithFormat
将格式字符串作为第一个参数,因此,假设
character.name
是您的字符名,您需要:

NSString *title = [NSString stringWithformat: @"%s is the character",
    character.name];
您拥有的是作为格式字符串的字符名,因此,如果它是
@“Bob”
,那么您将得到
Bob
。如果它是
“@Bob%s”
,则可以工作,但可能会填充到其他地方,您只显示字符名:-)


请注意,对于C字符串,您应该使用
“%s”
,如果character.name本身是NSString,我认为
“%@”
是正确的格式说明符。

您的代码是错误的。应该是:

NSString *title 
    = [NSString stringWithformat:@"%@ is the character", character.name];
假设character.name是另一个
NSString


阅读的格式,了解有关格式化字符串的所有信息。

mmm感谢您的快速回复,但情况似乎并非如此。我尝试了它,但知道它会失败,因为我已经尝试了NSString*title=[NSString stringWithformat:@“是字符”,character.name];然后它似乎完美地选择了“是角色”。这是因为你没有“%s”在里面(应该是@“%s是角色”,而不是@“是角色”)。将“%s”放入格式字符串时,它将替换为下一个参数中包含的字符串(即character.name)。如果character.name是NSString而不是C字符串,请参见更新。代码示例可能应该使用%@而不是%s。根据我的经验,C字符串在Cocoa中很少使用,但是%@可以用于任何NSObject。谢谢,即使我这样做,它似乎也不起作用,只是无法添加第二个字符串。NSString*title=[NSString stringWithformat:@“%s”是字符“,@“%s”是字符2”];如果传递NSString,则需要使用$@;如果传递C字符串,则需要使用%s。