【问题标题】:objective-c concatenate NSStringObjective-C 连接 NSString
【发布时间】:2011-06-29 07:27:07
【问题描述】:

我在连接 NSString 时遇到问题。

每次我按下按钮时,我都希望将一些东西(“aux”)添加到我的字符串(“myString”)中。所以:

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

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

aux = nil;

我第一次按下按钮效果很好,但第二次它不起作用。

请帮忙?

【问题讨论】:

  • 你说“它不起作用”是什么意思?你期待看到什么?你实际上看到了什么?你能发布一些示例输出吗?
  • 第二次发生了什么,是崩溃还是你得到什么输出?????
  • 检查posTargetaText的值..
  • 谢谢大家问题是我没有正确初始化 NSString。我用过:myString = @"";正确的做法是:myString = [NSString string];

标签: iphone nsstring concatenation


【解决方案1】:

所以你当然可以使用stringWithFormat,但你为什么不使用stringByAppendingString,因为这正是你想要做的?

NSString *newString = [firstString stringByAppendingString:secondString];

除非你有令人信服的理由,否则你真的不需要使用可变字符串。

【讨论】:

  • 他在两个字符串之间有一个“/”。 stringWithFormat 似乎最简单。
【解决方案2】:

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

如果您想始终在 myString 中附加字符串,您需要这样做。

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

您想在新的 myString 字符串中也添加 myString 的先前值吗?

不确定这是您想要的还是不同的。如果不是,请详细说明。

【讨论】:

    【解决方案3】:

    如果您想连接两个字符串,请使用 NSMutablestring 和方法 appendstring 而不是 NSString。

    http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSMutableString_Class/Reference/Reference.html

    【讨论】:

      【解决方案4】:

      你需要使用 NSMutableString。

      【讨论】:

      • 这与其他答案有何不同?
      猜你喜欢
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-12
      相关资源
      最近更新 更多