-->

Swift Error - “Unrecognized selector sent to insta

2019-09-21 16:29发布

问题:

I am working on a Swift project in Xcode v6.1.1, and I am getting the following error that I don't understand. I believe there is a problem with a couple of the Labels in my Main.storyboard and/or the UILabel variable I have them connected to. I have tried everything I can find to fix it, and nothing has worked.

Any help would be appreciated.

2015-03-02 19:43:14.854 Final Project[7380:250494] -[UILabel longValue]:  unrecognized selector sent to instance 0x7b8e1810  
2015-03-02 19:43:14.876 Final Project[7380:250494] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UILabel longValue]: unrecognized selector sent to instance 0x7b8e1810'  
*** First throw call stack:  
(
    0   CoreFoundation                      0x00686946 __exceptionPreprocess + 182  
    1   libobjc.A.dylib                     0x02062a97 objc_exception_throw + 44  
    2   CoreFoundation                      0x0068e5c5 -[NSObject(NSObject)   doesNotRecognizeSelector:] + 277  
    3   CoreFoundation                      0x005d73e7 ___forwarding___ + 1047  
    4   CoreFoundation                      0x005d6fae _CF_forwarding_prep_0 + 14  
    5   Foundation                          0x00b0b6dc _NSSetLongValueForKeyWithMethod + 69  
    6   Foundation                          0x00a691c6 _NSSetUsingKeyValueSetter + 257  
    7   Foundation                          0x00a690bd -[NSObject(NSKeyValueCoding) setValue:forKey:] + 267  
    8   Foundation                          0x00a9e9a6 -[NSObject(NSKeyValueCoding) setValue:forKeyPath:] + 386  
    9   UIKit                               0x011cf649 -[UIRuntimeOutletConnection connect] + 106  
    10  libobjc.A.dylib                     0x02078724 -[NSObject performSelector:] + 62  
    11  CoreFoundation                      0x005c05dc -[NSArray makeObjectsPerformSelector:] + 316  
    12  UIKit                               0x011ce10a -[UINib instantiateWithOwner:options:] + 1775  
    13  UIKit                               0x00ff0624 -[UIViewController _loadViewFromNibNamed:bundle:] + 270  
    14  UIKit                               0x00ff0dbb -[UIViewController loadView] + 295  
    15  UIKit                               0x00ff0fef -[UIViewController loadViewIfRequired] + 78  
    16  UIKit                               0x00ff1595 -[UIViewController view] + 35  
    17  UIKit                               0x01664707 -[_UIFullscreenPresentationController _setPresentedViewController:] + 75  
    18  UIKit                               0x00fc6a81 -[UIPresentationController initWithPresentedViewController:presentingViewController:] + 113  
    19  UIKit                               0x00ffea61 -[UIViewController _presentViewController:withAnimationController:completion:] + 2102  
    20  UIKit                               0x010015d2 __62-[UIViewController presentViewController:animated:completion:]_block_invoke + 345  
    21  UIKit                               0x01001424 -[UIViewController presentViewController:animated:completion:] + 224  
    22  UIKit                               0x010060be -[UIViewController _showViewController:withAction:sender:] + 213  
    23  UIKit                               0x012423b5 -[UIStoryboardShowSegue perform] + 143  
    24  UIKit                               0x014b6b49 -[UIStoryboardSegueTemplate _perform:] + 217  
    25  UIKit                               0x014b6bc5 -[UIStoryboardSegueTemplate perform:] + 116  
    26  libobjc.A.dylib                     0x020787cd -[NSObject performSelector:withObject:withObject:] + 84  
    27  UIKit                               0x00e9b23d -[UIApplication sendAction:to:from:forEvent:] + 99  
    28  UIKit                               0x00e9b1cf -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 64  
    29  UIKit                               0x00fcee86 -[UIControl sendAction:to:forEvent:] + 69  
    30  UIKit                               0x00fcf2a3 -[UIControl _sendActionsForEvents:withEvent:] + 598  
    31  UIKit                               0x00fce50d -[UIControl touchesEnded:withEvent:] + 660  
    32  UIKit                               0x00eeb60a -[UIWindow _sendTouchesForEvent:] + 874  
    33  UIKit                               0x00eec0e5 -[UIWindow sendEvent:] + 791  
    34  UIKit                               0x00eb1549 -[UIApplication sendEvent:] + 242  
    35  UIKit                               0x00ec137e _UIApplicationHandleEventFromQueueEvent + 20690  
    36  UIKit                               0x00e95b19 _UIApplicationHandleEventQueue + 2206  
    37  CoreFoundation                      0x005aa1df __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15  
    38  CoreFoundation                      0x0059fced __CFRunLoopDoSources0 + 253  
    39  CoreFoundation                      0x0059f248 __CFRunLoopRun + 952  
    40  CoreFoundation                      0x0059ebcb CFRunLoopRunSpecific + 443  
    41  CoreFoundation                      0x0059e9fb CFRunLoopRunInMode + 123  
    42  GraphicsServices                    0x0441a24f GSEventRunModal + 192  
    43  GraphicsServices                    0x0441a08c GSEventRun + 104  
    44  UIKit                               0x00e998b6 UIApplicationMain + 1526  
    45  Final Project                       0x000e904e top_level_code + 78  
    46  Final Project                       0x000e908b main + 43  
    47  libdyld.dylib                       0x027cfac9 start + 1  
)  
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)   

回答1:

Have you forgot a : in the string name?

Is your class marked with @objc?



回答2:

Just by looking at -[UILabel longValue]: unrecognized selector sent to instance 0x7b8e1810 gives me the answer. You are treating a UILabel as an NSString.

Somewhere in your code you have [label longValue] where you mean to have [label.text longValue].


After looking at more of your call stack. I can see that it's happening while a while initializing a view controller from a storyboard.

Have you subclassed any views? It looks like you might have inadvertently changed the type of a property from NSString to UILabel.



回答3:

So... I fixed the problem. Turned out the answer was right in front of me the whole time (it usually is). The Label that couldn't be initialized had the same name as an Int variable I had declared in the same class, only with the first letter capitalized. For some reason, I assumed it was case-sensitive, so that wouldn't matter...