简体   繁体   中英

Clicking button in Simulator causes app to crash

I tried How do I prompt the user for push notification permission after a button is pushed? and it didn't work.

Because the code from How do I prompt the user for push notification permission after a button is pushed? didn't work, I deleted it. The app should have gone back to normal, right?

Instead, I can't even run it anymore. After I clicked a button within Simulator, Xcode showed this error:

    2017-04-30 21:02:21.528 GradientAlarm[63166:7174122] 
    [GradientAlarm.ViewController allowNotifAction:]: unrecognized selector 
    sent to instance 0x7a0420b0
    2017-04-30 21:02:21.535 GradientAlarm[63166:7174122] *** Terminating app 
    due to uncaught exception 'NSInvalidArgumentException', reason: '-
    [GradientAlarm.ViewController allowNotifAction:]: unrecognized selector 
    sent to instance 0x7a0420b0'
    *** First throw call stack:
    (
    0   CoreFoundation                      0x030b3ded __exceptionPreprocess + 
    189
    1   libobjc.A.dylib                     0x0065cd6f objc_exception_throw + 
    49
    2   CoreFoundation                      0x031255b8 -[NSObject(NSObject) 
    doesNotRecognizeSelector:] + 136
    3   CoreFoundation                      0x03039a8d ___forwarding___ + 941
    4   CoreFoundation                      0x030396be _CF_forwarding_prep_0 + 
    14
    5   libobjc.A.dylib                     0x00672220 -[NSObject 
    performSelector:withObject:withObject:] + 63
    6   UIKit                               0x00ad3d90 -[UIApplication 
    sendAction:to:from:forEvent:] + 91
    7   UIKit                               0x00ad3d2a -[UIApplication 
    sendAction:toTarget:fromSender:forEvent:] + 41
    8   UIKit                               0x00c7bd0b -[UIControl 
    sendAction:to:forEvent:] + 64
    9   UIKit                               0x00c7c075 -[UIControl 
    _sendActionsForEvents:withEvent:] + 469
    10  UIKit                               0x00c7afab -[UIControl 
    touchesEnded:withEvent:] + 666
    11  UIKit                               0x00b4a2ca -[UIWindow 
    _sendTouchesForEvent:] + 3066
    12  UIKit                               0x00b4bb8e -[UIWindow sendEvent:] 
    + 4445
    13  UIKit                               0x00af1fe0 -[UIApplication 
    sendEvent:] + 363
    14  UIKit                               0x0136e16f 
    __dispatchPreprocessedEventFromEventQueue + 2973
    15  UIKit                               0x0136563f __handleEventQueue + 
    1255
    16  UIKit                               0x01366ba3 
    __handleHIDEventFetcherDrain + 66
    17  CoreFoundation                      0x03058a5f 
    __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
   18  CoreFoundation                      0x0303e1c4 __CFRunLoopDoSources0 + 
   500
   19  CoreFoundation                      0x0303d69c __CFRunLoopRun + 1084
   20  CoreFoundation                      0x0303cfd4 CFRunLoopRunSpecific + 
   372
   21  CoreFoundation                      0x0303ce4b CFRunLoopRunInMode + 123
   22  GraphicsServices                    0x04d58a7a GSEventRunModal + 71
   23  GraphicsServices                    0x04d5895f GSEventRun + 80
   24  UIKit                               0x00ad1cb9 UIApplicationMain + 148
25  GradientAlarm                       0x0008cbab main + 75
26  libdyld.dylib                       0x03f16779 start + 1)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 

I don't know why this happened. I deleted the information that I had added and opened a new project from which I copy and pasted all of the defaults, but I still have the same error message.

You probably still have the reference to allowNotifAction: in .xib or storyboard view controller.

Go to the interface builder (.xib or storyboard) select the view controller and make sure that there is no reference to the method.

The answer to this question is quite simple. The console's error message wasn't very helpful, but I was looking around and realized I had linked the same button to the View Controller twice, and that even after I deleted the corresponding programming block in the View Controller, the button was still linked to something. I just had to right click the button in the storyboard and delete that.

Silly mistake. Thanks everyone for responding!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM