2015-08-04 8 views
0

Мое приложение продолжает сбой, когда я нажимаю на UITextField, который я программно добавляю к своему представлению. Вот трассировки стека, если это какой-либо помощи:UITextField crash on touch

 
'NSInvalidArgumentException', reason: '-[Clifford_Bradford.OtherVehiclesViewController numOfOtherVehiclesUpdated:]: unrecognized selector sent to instance 0x7fd92a57f8d0' 
*** First throw call stack: 
(
    0 CoreFoundation      0x0000000107e5dc65 __exceptionPreprocess + 165 
    1 libobjc.A.dylib      0x00000001099c8bb7 objc_exception_throw + 45 
    2 CoreFoundation      0x0000000107e650ad -[NSObject(NSObject) doesNotRecognizeSelector:] + 205 
    3 CoreFoundation      0x0000000107dbb13c ___forwarding___ + 988 
    4 CoreFoundation      0x0000000107dbacd8 _CF_forwarding_prep_0 + 120 
    5 UIKit        0x00000001086fdd62 -[UIApplication sendAction:to:from:forEvent:] + 75 
    6 UIKit        0x000000010880f50a -[UIControl _sendActionsForEvents:withEvent:] + 467 
    7 UIKit        0x0000000108e26d39 -[UITextField _resignFirstResponder] + 256 
    8 UIKit        0x0000000108e26bab -[UITextField _finishResignFirstResponder] + 45 
    9 UIKit        0x000000010888078b -[UIResponder resignFirstResponder] + 114 
    10 UIKit        0x0000000108e26b04 -[UITextField resignFirstResponder] + 114 
    11 UIKit        0x0000000108880575 -[UIResponder becomeFirstResponder] + 284 
    12 UIKit        0x000000010876fb81 -[UIView(Hierarchy) becomeFirstResponder] + 99 
    13 UIKit        0x0000000108e26307 -[UITextField becomeFirstResponder] + 51 
    14 UIKit        0x0000000108ab5d4e -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) setFirstResponderIfNecessary] + 177 
    15 UIKit        0x0000000108ab7dc0 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) oneFingerTap:] + 2263 
    16 UIKit        0x0000000108aad656 _UIGestureRecognizerSendActions + 262 
    17 UIKit        0x0000000108aac2f9 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 532 
    18 UIKit        0x0000000108ab0f16 ___UIGestureRecognizerUpdate_block_invoke662 + 51 
    19 UIKit        0x0000000108ab0e12 _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 254 
    20 UIKit        0x0000000108aa6e8d _UIGestureRecognizerUpdate + 2796 
    21 UIKit        0x000000010874a646 -[UIWindow _sendGesturesForEvent:] + 1041 
    22 UIKit        0x000000010874b272 -[UIWindow sendEvent:] + 666 
    23 UIKit        0x0000000108711541 -[UIApplication sendEvent:] + 246 
    24 UIKit        0x000000010871ecdc _UIApplicationHandleEventFromQueueEvent + 18265 
    25 UIKit        0x00000001086f959c _UIApplicationHandleEventQueue + 2066 
    26 CoreFoundation      0x0000000107d91431 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 
    27 CoreFoundation      0x0000000107d872fd __CFRunLoopDoSources0 + 269 
    28 CoreFoundation      0x0000000107d86934 __CFRunLoopRun + 868 
    29 CoreFoundation      0x0000000107d86366 CFRunLoopRunSpecific + 470 
    30 GraphicsServices     0x000000010be31a3e GSEventRunModal + 161 
    31 UIKit        0x00000001086fc8c0 UIApplicationMain + 1282 
    32 Clifford Bradford     0x0000000107c33bb7 main + 135 
    33 libdyld.dylib      0x000000010a0fe145 start + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException`. 

Это просто указывает мне на первой линии AppDelegate.swift, которая на самом деле не поможет мне. Вот соответствующий код, который добавляет textField к представлению. Я хотел бы добавить, что contView находится внутри scrollView.

 var otherVehiclePlateNum:UITextField = UITextField(frame: CGRectMake(carLabel.bounds.origin.x + 15, carLabel.frame.maxY + 10, self.contView.frame.width - 30, 25)) 
     otherVehiclePlateNum.placeholder = "TEST" 
     self.contView.addSubview(otherVehiclePlateNum) 

Большое спасибо за помощь, я застрял на этом.

+1

ли вы установили какой-то обработчик событий, чтобы использовать метод под названием 'numOfOtherVehiclesUpdated:'? Вы либо фактически не реализовали метод (с соответствующим количеством аргументов), либо помещали его в неправильный класс. – rmaddy

+0

Да, это было правильно, он был подключен к моему ViewController из моей раскадровки из тестирования некоторое время назад. В любом случае, просто удалил его в раскадровку и все это хорошо. Благодаря! – nickfhs

+0

Возможный дубликат [Как отлаживать ошибку «непризнанный селектор, отправленный в экземпляр»] (http://stackoverflow.com/questions/25853947/how-can-i-debug-unrecognized-selector-sent-to-instance-error) –

ответ

0

Посмотрите на первую строку: действительно ли метод numOfOtherVehiclesUpdated: существует в классе OtherVehiclesViewController? Убедитесь, что если вы вызываете какой-либо @selector s, что двоеточие соответствует сигнатуре (т. Е. У вас может быть метод numOfOtherVehiclesUpdated, который не совпадает с numOfOtherVehiclesUpdated:, который принимает параметр).

Посмотрите там первый - вы можете называть, что случайно

+0

О, черт возьми, я не могу поверить, что забыл об этом. Вот и все. Я использовал его, когда я тестировал что-то раньше. По какой-то причине он был подключен к чему-то в моем ViewController в Storyboard, и все, что нужно, это удалить его в инспекторе соединений. Это мой первый раз, когда я делаю приложение, так что он идет медленно. В любом случае, спасибо Камерон – nickfhs

+0

Рад, что все было так просто ... это случается со всеми нами время от времени. :) – Cameron