我正在创建一个计算器应用程序,计算器屏幕是一个 UILabel。我在使用删除键时遇到问题。这是我的代码:
。H
IBOutlet UILabel *display;
.m
- (IBAction)Del
{
[display.text substringToIndex:display.text.length -1];
}
它没有错误并且可以在模拟器中完美运行,但实际上并不能正常工作。任何人都可以帮忙。
我正在创建一个计算器应用程序,计算器屏幕是一个 UILabel。我在使用删除键时遇到问题。这是我的代码:
。H
IBOutlet UILabel *display;
.m
- (IBAction)Del
{
[display.text substringToIndex:display.text.length -1];
}
它没有错误并且可以在模拟器中完美运行,但实际上并不能正常工作。任何人都可以帮忙。
-substringToIndex:
创建它要发送到的字符串的一部分的副本。
您在这里所拥有的内容创建了这样一个字符串,并且对它没有任何作用。
我怀疑您想将该字符串分配给某些东西,例如display.text
属性:
- (IBAction)Del {
display.text = [display.text substringToIndex:display.text.length -1];
}
您忽略了该substringToIndex:
方法的返回值,并且您没有更新标签的文本。
你想要这样的东西:
- (IBAction)Del {
NSString *oldText = display.text;
if (oldText.length > 0) {
NSString *newText = [oldText substringToIndex:oldText - 1];
display.text = newText;
}
}
这也可以防止尝试从空标签中删除。