0

我崩溃了Fabric,堆栈如下:

Thread : Crashed: com.apple.main-thread
0  libobjc.A.dylib                6806634868 objc_release + 20
1  libsystem_blocks.dylib         6813456656 _Block_release + 256
2  libobjc.A.dylib                6806640420 (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 564
3  CoreFoundation                 6529519172 _CFAutoreleasePoolPop + 28
4  UIKit                          6605817924 _wrapRunLoopWithAutoreleasePoolHandler + 76
5  CoreFoundation                 6530394704 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32
6  CoreFoundation                 6530382300 __CFRunLoopDoObservers + 360
7  CoreFoundation                 6530383292 __CFRunLoopRun + 836
8  CoreFoundation                 6529519780 CFRunLoopRunSpecific + 396
9  GraphicsServices               6682260900 GSEventRunModal + 168
10 UIKit                          6606283712 UIApplicationMain + 1488
11 Spec                           4297532060 main (main.m:15)
12 libdyld.dylib                  6813280776 start + 4

我不知道为什么会在_Block_release之后(anonymous namespace)::AutoreleasePoolPage::pop(void*)。是否有可能将块添加到自动释放池中?如果可能,为什么该块在释放时崩溃而在调用时没有崩溃?

4

1 回答 1

1

好的,我已经解决了这个bug。崩溃的原因是我hook了objectAtIndexNSMutableArray的函数。如果用户从后台切换,应用程序会崩溃-[UIKeyboardLayoutStar release]: message sent to deallocated

所以删除钩子代码将解决这个错误。

于 2015-10-30T13:01:38.143 回答