执行 segue 时出错:-[UITextField 长度]:无法识别的选择器发送到实例 [关闭]

Posted

技术标签:

【中文标题】执行 segue 时出错:-[UITextField 长度]:无法识别的选择器发送到实例 [关闭]【英文标题】:Error when performing segue: -[UITextField length]: unrecognized selector sent to instance [closed] 【发布时间】:2014-02-24 01:04:02 【问题描述】:

我有一些代码可以在我的应用中切换到另一个屏幕:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data 
    NSString *dataString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"Performing Segue...");
    // Open detail segue
    [self performSegueWithIdentifier:@"DetailViewSegue" sender:dataString];


-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)json

    NSLog(@"Testing...");
    // If we are going to the success view, send the JSON data over as well!
    if ([segue.identifier isEqualToString:@"DetailViewSegue"]) 
        DetailViewController *DetailViewControllerSegue = [segue destinationViewController];
        NSDictionary *jsonSendetAsParamInPerformSegue = (NSDictionary*)json;
        DetailViewControllerSegue.jsonString = jsonSendetAsParamInPerformSegue;

    

当我尝试执行 segue 时出现此错误:-[UITextField length]: unrecognized selector sent to instance 0x14589970

错误是什么意思?我该如何解决?

谢谢,

彼得

【问题讨论】:

在下一个视图的 viewDidLoad 或 viewWillAppear 中是否有任何文本字段被访问/操作? (“dataString”应该是什么?) dataString 是从 Web 服务器接收的 JSON 字符串。我可以确认 dataString 很好,因为我在 NSLog 中调用它。 viewDidLoad 中正在处理一些文本字段,我现在会检查一下。 unrecognized selector sent to instance 0x6b61d10的可能重复 SO 有数百万个问题。为什么人们不能因为重复的问题而停止关闭它们,这是预期的!!!!!!! 【参考方案1】:

UITextField 没有名为 length 的选择器。您可能想要的是在文本字段的text 属性上调用length

[someTextField.text length]

(我实际上在发布的代码中没有看到与文本字段相关的任何内容......但这是给定错误消息的唯一解释)

【讨论】:

我不明白为什么?我在视图控制器中有一些文本字段。此外,没有任何文本字段与 segue 被更改有关? 只需查看您的代码并找出您在哪里调用length 选择器。这显然是问题所在。我也不明白为什么,因为您没有发布与您收到的错误消息相关的代码。 我根本没有调用长度选择器。这就是我困惑的地方? @PeterStuart - 查看异常堆栈!!【参考方案2】:

出现此错误的原因是我的 Storyboard Segue Identifier 中有错字且不匹配:

@"DetailViewSegue"

在:

[self performSegueWithIdentifier:@"DetailViewSegue" sender:dataString];

我希望这对以后的其他人有所帮助

彼得

【讨论】:

如果是这种情况,请接受您自己的答案以结束此问题。 @Marco 您需要至少等待 2 天才能接受自己的答案。愚蠢,我知道。 我不知道。无论如何,感谢您发布自己问题的答案,并不是每个人都花时间这样做。

以上是关于执行 segue 时出错:-[UITextField 长度]:无法识别的选择器发送到实例 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将 unwind segue 与 UISearchController 一起使用时出错

segue 出错:'NSInvalidArgumentException',原因:'接收者没有带有标识符的 segue

为啥程序在登录时不执行segue?

segue 关闭时执行操作

使用后退按钮展开 segue 时执行代码

按下页面时执行 Segue