Согласно документации Apple, значение для currentTitle
может быть nil.
Может быть просто не задано.
Вы всегда можете сделать if (myObject == nil)
, чтобы проверить, или вв этом случае:
-(IBAction) startMotion: (id)sender {
NSLog(@"Forward or back button is being pressed.");
UIButton * buttonName = (UIButton *) sender;
if (buttonName != nil) {
NSString *title = buttonName.currentTitle;
NSLog(@"Button Name: %@", title);
}
}
Другой способ проверить, нажата ли кнопка «назад» или «вперед», - это проверить саму id
.
//in the interface, and connect it up in IB
//IBOutlet UIButton *fwdButton;
//IBOutlet UIButton *bckButton;
-(IBAction) startMotion: (id)sender {
NSLog(@"Forward or back button is being pressed.");
UIButton * buttonName = (UIButton *) sender;
if (buttonName == fwdButton) {
NSLog(@"FWD Button");
}
if (buttonName == bckButton) {
NSLog(@"BCK Button");
}
}
также убедитесь, что ваши розетки и действиявсе связаны в IB, и что вы сохраняете и перестраиваете проект.Я пошел туда, где я изменил что-то в IB, сохранил файл .m
(не перо) и выглядел как «почему это не работает ???»