Новый для OB-C здесь. Java программист по профессии.
Это пример из моего файла view.m. У меня есть дисплей, который берет некоторые цифры с кнопок.
Если на дисплее отображается 0, он должен сначала очистить 0 перед добавлением новых чисел.
- (IBAction) btn1:(id) sender{[self numPress: (NSString *) @"1"];};
- (IBAction) btnClear:(id) sender{display.text = @"0";};
- (void) numPress : (NSString *) key {
if (display.text == (NSString *) @"0")
display.text = @"";
display.text = [display.text stringByAppendingString: key];
}
- (void) viewDidLoad {
self.display.text = (NSString *) @"0";
}
Когда я запускаю его, как показано, на дисплее отображается «0», затем, если я нажимаю «1», дисплей меняется на «01».
Если я нажимаю «Очистить», дисплей сбрасывается на «0», затем, если я снова нажимаю «1», он меняется на «1». (ожидаемый результат). Когда я в первый раз нажал '1', 0 должен был быть удален.
Если я изменю viewDidLoad, чтобы установить display.text на «2», и изменим условие оператора numPress, если на «2», это сработает.
- (IBAction) btn1:(id) sender{[self numPress: (NSString *) @"1"];};
- (IBAction) btnClear:(id) sender{display.text = @"0";};
- (void) numPress : (NSString *) key {
if (display.text == (NSString *) @"2")
display.text = @"";
display.text = [display.text stringByAppendingString: key];
}
- (void) viewDidLoad {
self.display.text = (NSString *) @"2";
}
Я строю, затем запускаю, и на дисплее отображается «2». Я нажимаю «1», и дисплей меняется на «1». (убирая ведущий '2' как следует).
Может ли кто-нибудь помочь мне здесь, почему «2» работает, но «0» не срабатывает (но только в первый раз), что поражает меня?