【问题标题】:[UITextInputTraits length]: unrecognized selector[UITextInputTraits 长度]:无法识别的选择器
【发布时间】:2011-12-17 15:03:04
【问题描述】:

今天最奇怪的错误:

2011-12-17 08:52:50.565 ShowLink[625:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITextInputTraits length]: unrecognized selector sent to instance 0x2aa240'
*** First throw call stack:
(0x37eb68bf 0x3199c1e5 0x37eb9acb 0x37eb8945 0x37e13680 0x352e4d9b 0x352aa0fd 0x352ac24d 0x352aa8e5 0x352aa259 0x352aa1b3 0x352aa12f 0x3539a623 0x352ad503 0x352acef5 0x352a76ff 0x352a7349 0x3d29 0x37e10435 0x352899eb 0x352899a7 0x35289985 0x352896f5 0x3528a02d 0x3528850f 0x35287f01 0x3526e4ed 0x3526dd2d 0x3798bdf3 0x37e8a553 0x37e8a4f5 0x37e89343 0x37e0c4dd 0x37e0c3a5 0x3798afcd 0x3529c743 0x211d 0x20dc)
terminate called throwing an exception(gdb) 

标准导航控制器应用程序,我发誓,不会调用 UITextInputTraits 或与之有任何关系。当我将新控制器压入堆栈时会发生这种情况。

为了进行测试,我将控制器分解为最简单的部分,但在推送后仍然出现错误(调用了推送的控制器 viewDidLoad 和 viewWillAppear,这似乎发生在较低级别)

【问题讨论】:

标签: ios exception uinavigationcontroller


【解决方案1】:

如果您声明了名为 UITextField *title 的属性 如果您将文本字段对象命名为 *title 它是您问题的根源:D 改变你的变量名不要使用“TITLE”

【讨论】:

  • 重命名了我视图上的所有 UITextFields,segue 上的这个异常消失了(顺便说一句,断点无法捕获它,我都试过了):我有名称:名称、代码、描述。
【解决方案2】:

就像我已经在评论中发布的那样,您应该 enable an exception breakpoint 来查看发生异常的确切代码行。

您可能尚未创建UITextInputTraits,但我猜您在正在使用的代码中的某处创建了UITextFieldUITextField 符合 UITextInput-portocol,它符合 UIKeyInput-protocol,例如符合 UITextInputTraits-protocol。

我可以在错误消息中看到您想要调用符合UITextInputTraits-协议的东西的length-property。在某些代码点中,您认为您手中有一个NSString,而不是NSString。只是猜测:您的代码中是否有这种行:[myTextField length]?如果是这样,您应该将其更改为[myTextField.text length]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    • 2014-05-22
    • 1970-01-01
    相关资源
    最近更新 更多