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.