2

在过去的两天里,我一直在努力解决这个问题。无法理解我的应用程序崩溃的原因。

我正在使用JASidePanel库在我的应用程序中实现面板效果。左侧面板是一个表格视图,其作用类似于中心面板的导航指南。在一种情况下,当在左侧面板中选择特定选项时(当它打开时),中心面板应该只是关闭左侧面板并呈现另一个导航控制器(具有一致的)根视图控制器。但是,有时这种转换会使我的应用程序崩溃。

[self presentViewController:self.cityNavigationController animated:YES completion:nil];我观察到 JASidePanel 的代码或我的中心面板视图控制器代码 ( )中不会发生崩溃。我清楚地观察到应用程序由于 iOS 框架的某些内部崩溃而崩溃,我逐条检查并弄清楚了这一点。

但是,我仍然认为我做错了什么。谁能建议我为什么会发生这种崩溃?我应该寻找什么来解决这个问题?我可以/应该遵循的任何步骤或程序来检测问题?

任何帮助表示赞赏。

设备日志:

Thread 0 Crashed:
0   libobjc.A.dylib                 0x3a085b26 objc_msgSend + 6
1   UIKit                           0x3257c788 -[UISearchBar _didMoveFromWindow:toWindow:] + 152
2   UIKit                           0x3249a576 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 662
3   UIKit                           0x3249a576 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 662
4   UIKit                           0x324bb5e2 -[UIScrollView _didMoveFromWindow:toWindow:] + 46
5   UIKit                           0x3249a576 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 662
6   UIKit                           0x3249a576 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 662
7   UIKit                           0x3249a576 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 662
8   UIKit                           0x3249a576 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 662
9   UIKit                           0x32499e68 __45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 108
10  Foundation                      0x30688d98 -[NSISEngine withBehaviors:performModifications:] + 208
11  UIKit                           0x32499cf2 -[UIView(Hierarchy) _postMovedFromSuperview:] + 294
12  UIKit                           0x324a6998 -[UIView(Internal) _addSubview:positioned:relativeTo:] + 1400
13  UIKit                           0x324a6412 -[UIView(Hierarchy) addSubview:] + 26
14  UIKit                           0x32587d8a -[UITransitionView transition:fromView:toView:removeFromView:] + 974
15  UIKit                           0x32587998 -[UIViewControllerBuiltinTransitionViewAnimator animateTransition:] + 444
16  UIKit                           0x32587406 __101-[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:animation:]_block_invoke_2 + 1250
17  UIKit                           0x3251afb6 _applyBlockToCFArrayCopiedToStack + 314
18  UIKit                           0x324931ee _afterCACommitHandler + 426
19  CoreFoundation                  0x2fcf31ca __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 18
20  CoreFoundation                  0x2fcf0b6c __CFRunLoopDoObservers + 280
21  CoreFoundation                  0x2fcf0eae __CFRunLoopRun + 726
22  CoreFoundation                  0x2fc5bc22 CFRunLoopRunSpecific + 518
23  CoreFoundation                  0x2fc5ba06 CFRunLoopRunInMode + 102
24  GraphicsServices                0x3493a27e GSEventRunModal + 134
25  UIKit                           0x324ff044 UIApplicationMain + 1132
26  Housing India                   0x000a2606 main (main.m:16)
27  libdyld.dylib                   0x3a592ab4 start + 0
4

1 回答 1

-1

好吧,如果这对任何人都有帮助。

问题出在 iOS 框架上。问题在于 UINavigationController 的实现。崩溃发生在框架本身内部。唯一可能的出路是每次在展示它之前实例化导航控制器。这会降低性能,但没有其他选择。苹果,确实有很多限制和假设。:P

说明:我们需要展示一个带有模态动画的导航控制器。我们试图通过实例化一次并尝试重用它来一次又一次地避免导航控制器的实例化。但是,正因为如此,我们观察到有时会发生崩溃。不完全知道崩溃意味着什么,但通过一次又一次地实例化它来修复它。

于 2013-11-25T18:09:07.737 回答