Objective c 调试与无法识别的选择器相关的异常
我想知道你是否能帮我 我想创建一种情况,如果用户在文本字段中输入特定文本,他们将被带到一个新视图 我正在努力让它工作-我使用以下代码来煽动这一点:Objective c 调试与无法识别的选择器相关的异常,objective-c,debugging,selector,textfield,unrecognized-selector,Objective C,Debugging,Selector,Textfield,Unrecognized Selector,我想知道你是否能帮我 我想创建一种情况,如果用户在文本字段中输入特定文本,他们将被带到一个新视图 我正在努力让它工作-我使用以下代码来煽动这一点: - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if ([string isEqualToString:@"\n"]) { NSStri
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if ([string isEqualToString:@"\n"]) {
NSString *lowercaseactualanswer = [footballersurname lowercaseString];
NSString *lowercaseuseranswer = [textField.text lowercaseString];
if ([lowercaseuseranswer isEqualToString:lowercaseactualanswer])
{
CorrectScreen *screen = [[CorrectScreen alloc] initWithNibName:nil bundle:nil];
screen.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:screen animated:YES];
}
else {
self.guess.text = [[NSString alloc]initWithFormat: @"%@ is incorrect", textField.text];
textField.text = @"";
}
}
return YES;
}
我使用相同的方法成功地导航到代码中其他地方的不同屏幕(使用与CorrectScreen*screen中的三行相同的方法),我收到的错误消息是:
-[GameScreen textFieldDoneEditing:]: unrecognized selector sent to instance 0x6c43e20
当添加一个异常断点时,绿色箭头停止在[self-presentModal…]开始的行,线程突出显示以下内容:
-[GameScreen textField:shouldChangeCharactersInRange:replacementString:]
我真的不知道问题出在哪里。我的印象是,未识别的选择器问题通常与未正确链接对象有关,但我确信我在这里已经做到了
有人有什么想法吗?我现在有点困了,我相信有人能帮上忙
非常感谢
安迪我怀疑发生的情况如下:
-[GameScreen textField:shouldChangeCharactersInRange:replacementString:]
textFieldDoneEditing
发送到GameScreen
对象来结束编辑会话textFieldDoneEditing
未为GameScreen
定义,因此程序崩溃由于
textFieldDoneEditing
不是iOS SDK的一部分(据我所见),我假设您在Interface Builder中定义它是由textfield“Editing Did End”事件触发的操作。您还可以适当地修改此绑定,以便解决此问题。是的,您是正确的!我试图让shouldChangeCharactersInRange类中的第一响应者辞职,因此,当按照您的建议创建textFieldDoneEditing类并在其中辞职时,它工作得非常好。非常感谢!