NSMutablestring问题

时间:2012-08-26 09:50:59

标签: ios objective-c iphone

我正在实施一个简单的计算器。

每次用户点击数字按钮时,sender.tag将附加到名为displayString的nsmutable字符串,然后显示在屏幕上。

可变字符串以40开头。

奇怪的是,在输入10位数后,例如1111111111,字符串的行为就错误了。

如果您继续点击数字按钮' 1',字符串不会附加' 1'再一次,但另一个值,比如,2或6 ...突然出现像25469632154这样的数字!

使用调试器检查 - 问题不是来自显示器,而是来自字符串本身没有正确附加。

sender.tag是否未正确传递?

这里可能出现什么问题?

[displayString appendString: [NSString stringWithFormat: @"%i", [sender tag]]];  
self.lblDisplay.text = displayString;

2 个答案:

答案 0 :(得分:1)

欢迎来到SO! 您可以尝试记录所有标记以确定问题所在。

NSLog(@"%d", [sender tag])

Tag属性是NSInteger类型,因此您可以使用%d修饰符而不是%i。 您也可以使用appendFormat方法:

[displayString appendFormat:@"%d",[sender tag]];
self.lblDisplay.text = displayString;

答案 1 :(得分:1)

您为什么使用NSMutableString?为什么不这样做:

self.lblDisplay.text = [self.lblDisplay.text stringByAppendingFormat:@"%d", [sender tag]];

无论如何,你是如何设置标签的?请发布该代码。我的猜测是那里出现了问题,而不是传递标签或附加值。