電卓アプリを作成しており、電卓画面は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;
}
}
これはまた、空のラベルから削除しようとするのを防ぎます。