Objective-C字符串拼接(concatenate)

6

我有问题需要拼接NSString。

每次我按下按钮时,我希望将某个东西("aux")添加到我的字符串("myString")中。所以:

NSString *aux = [NSString stringWithFormat: @"%d", buttonIndex];

myString=[NSString stringWithFormat:@"%@/%@",posTargetaText,aux];

aux = nil;

第一次按按钮时它正常工作,但第二次就无法正常工作了。
请帮忙解决一下?

1
当你说“它不起作用”时,你是什么意思?你期望看到什么?你实际上看到了什么?你能发布一些样本输出吗? - Simon Whitaker
第二次会发生什么,会崩溃还是会得到什么输出? - jigneshbrahmkhatri
检查 posTargetaText 的值。 - Jhaliya - Praveen Sharma
谢谢大家。问题在于我没有正确地初始化NSString。我使用了:myString = @"";正确的方式是:myString = [NSString string()]; - ValentiGoClimb
4个回答

13

你确实可以使用stringWithFormat,但为什么不使用stringByAppendingString呢?因为这正是你想要做的事情。

所以你可以肯定地使用stringWithFormat,但为什么不直接使用stringByAppendingString呢?因为这正是你想要做的。

NSString *newString = [firstString stringByAppendingString:secondString];

除非你有必须使用可变字符串,否则你真的不需要使用它。


他在这两个字符串之间加了一个“/”。stringWithFormat似乎是最简单的方法。 - Steve

7

不确定您想要做什么。但根据您的代码,aux每次都会有新的buttonIndex值,每当您点击按钮时,mystring也将始终是新的。

如果您希望始终在myString中附加字符串,则需要像这样操作。

myString=[NSString stringWithFormat:@"%@%@/%@",myString,posTargetaText,aux];

你希望将之前的myString值添加到新的myString字符串中吗?
如果不是,请详细说明您需要的内容。

0

0
你需要使用NSMutableString。

这与其他答案有何不同? - HoldOffHunger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接