今天最奇怪的错误:
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被调用,这似乎发生在较低级别)
最佳答案
就像我已经在评论中发布的一样,您应该enable an exception breakpoint以查看发生异常的确切代码行。
您可能尚未创建UITextInputTraits
,但是我想您在正在使用的代码中的某个位置创建了UITextField
。例如,UITextField
符合UITextInput
-portocol,而UIKeyInput
-protocol符合UITextInputTraits
-protocol。
我可以在错误消息中看到要调用length
-property符合UITextInputTraits
-protocol的属性。在某些代码点上,您认为手中有一个NSString
,而不是NSString
。只是猜测:您的代码中是否存在此类行:[myTextField length]
?如果是这样,则应将其更改为[myTextField.text length]
关于ios - [UITextInputTraits长度]:无法识别的选择器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8545587/