在文本框中显示连接的字符串

时间:2014-02-27 02:06:21

标签: objective-c nsstring concatenation

我正在尝试构建一个按钮计算器。因此,用户按下标有“0”的按钮,文本框显示0.我遇到的挑战是当用户按下0按钮两次(“00”)或按1然后按0.(“10 。“)

我为每个数字按钮设置了一个事件。我的想法是有一个名为runningAnswer的通用变量来存储连续答案的运行记录。然后我有一个按钮字符串和一个“holder”字符串,因为我无法使用按钮字符串附加runningAnswer字符串。

我遇到的问题是我必须启动持有人字符串。我可以使用我的方法让文本框显示“0”,但每次按下它时,runningAnswer只存储第一个“0”,因为持有者字符串正在重新设置。

如果这是一个非常简单的问题,我道歉。我只是对如何构建这种应用程序感到很失落。

- (IBAction)btn0:(id)sender {
    NSString* zero =@"0";
    NSString* holder= @"";
    runningAnswer=[holder stringByAppendingString:zero];
    self.txtResult.text = runningAnswer;

2 个答案:

答案 0 :(得分:0)

您需要在函数外声明 holder 字符串

NSString *holder = @""; 

并在你的功能中

holder = [holder stringByAppendingString:zero];
self.txtResult.text = holder;

答案 1 :(得分:0)

摆脱持有人,然后做

runningAnswer = [runningAnswer stringByAppendingString:zero];

并确保在init中初始化运行答案,如:

- (id)init
{
  self = [super init];
  if (self) {
    runningAnswer = @"";
  }
  return self;
}