我正在创建一个计算器应用程序,计算器屏幕是UILabel。我在删除密钥时遇到问题。这是我的代码:
.h
IBOutlet UILabel *display;
的.m
- (IBAction)Del
{
[display.text substringToIndex:display.text.length -1];
}
它没有错误并且在模拟器中完美运行但实际上并不起作用。任何人都可以提供帮助。
答案 0 :(得分:2)
-substringToIndex:
创建一个字符串的一部分副本。
你在这里创造了这样一个字符串,并且不做任何事情。
我怀疑你想把这个字符串分配给某个东西,比如display.text
属性:
- (IBAction)Del {
display.text = [display.text substringToIndex:display.text.length -1];
}
答案 1 :(得分:1)
您忽略了substringToIndex:
方法的返回值,并且您没有更新标签的文本。
你想要这样的东西:
- (IBAction)Del {
NSString *oldText = display.text;
if (oldText.length > 0) {
NSString *newText = [oldText substringToIndex:oldText - 1];
display.text = newText;
}
}
这也可以防止尝试从空标签中删除。