UIKit - [UIApplication sendAction: to: from: forEvent:] crash

У меня возникла очень необычная проблема. У меня был сбой на UIKit.. В первый раз я столкнулся с чем-то вроде этого.. Пожалуйста, кто-нибудь может помочь мне в этом.

Это журнал сбоев, который я получил.

Crashed: com.apple.main-thread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x1161a18c

Thread : Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x386fcb66 objc_msgSend + 5
1  UIKit                          0x30b5dda3 -[UIApplication sendAction:to:from:forEvent:] + 90
2  UIKit                          0x30cc5615 -[UIBarButtonItem(UIInternal) _sendAction:withEvent:] + 120
3  UIKit                          0x30b5dda3 -[UIApplication sendAction:to:from:forEvent:] + 90
4  UIKit                          0x30b5dd3f -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 38
5  UIKit                          0x30b5dd13 -[UIControl sendAction:to:forEvent:] + 46
6  UIKit                          0x30b49743 -[UIControl _sendActionsForEvents:withEvent:] + 374
7  UIKit                          0x30b5d75b -[UIControl touchesEnded:withEvent:] + 594
8  UIKit                          0x30b5d425 -[UIWindow _sendTouchesForEvent:] + 528
9  UIKit                          0x30b58451 -[UIWindow sendEvent:] + 832
10 UIKit                          0x30b2dd79 -[UIApplication sendEvent:] + 196
11 UIKit                          0x30b2c569 _UIApplicationHandleEventQueue + 7116
12 CoreFoundation                 0x2e36ff1f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14
13 CoreFoundation                 0x2e36f3e7 __CFRunLoopDoSources0 + 206
14 CoreFoundation                 0x2e36dbd7 __CFRunLoopRun + 630
15 CoreFoundation                 0x2e2d8471 CFRunLoopRunSpecific + 524
16 CoreFoundation                 0x2e2d8253 CFRunLoopRunInMode + 106
17 GraphicsServices               0x330122eb GSEventRunModal + 138
18 UIKit                          0x30b8d845 UIApplicationMain + 1136
19 TradeMate                      0x0008f2bf main (main.m:16)

Ответ 1

Сбой в objc_msgSend. Это означает (как объяснено в этой знаменитой статье), что получатель пропал без вести. В этом случае кажется, что пользователь нажал кнопку, которая отправляет сообщение о действии на цель, но целевой объект уже не существует.

Ответ 2

Убедитесь, что ресивер или объект, который принимает события, объявлены сильными. Вы даже не можете получить журнал сбоев, чтобы выяснить, что пошло не так:)

enter image description here

Если вы получаете что-то вроде выше, проверьте, объявлен ли объект сильным. Это должно решить проблему.