Question

J'essaie de résoudre ce problème depuis deux jours. Impossible de comprendre pourquoi mon application se bloque.

j'utilise JASidePanel Bibliothèque pour réaliser l'effet du panneau dans mon application. Le panneau latéral gauche est un TableView qui agit comme un guide de navigation pour le panneau central. Dans un scénario, lorsqu'une option particulière est sélectionnée dans le panneau latéral gauche (lorsque cela est ouvert), le panneau central est censé fermer simplement le panneau latéral gauche et présenter un autre contrôleur de navigation (avec un contrôleur de vue racine cohérent). Cependant, parfois cette transition plante mon application.

J'ai observé que le crash ne se produit pas dans le code de JasidePanel ou le code du contrôleur de vue de mon panneau central ([self presentViewController:self.cityNavigationController animated:YES completion:nil];). J'ai clairement observé que l'application s'écrase en raison d'un accident interne en raison du cadre iOS, j'ai suivi chaque instruction par instruction et j'ai compris cela.

Mais encore, je pense que je fais quelque chose de mal. Quelqu'un peut-il me suggérer pourquoi cet accident pourrait se produire? Que dois-je rechercher pour résoudre ce problème? Des étapes ou des procédures que je peux / devrais suivre pour détecter le problème?

Toute aide est appréciée.

Journal des périphériques:

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
Était-ce utile?

La solution

Eh bien, si pour quelqu'un, cela aide.

Le problème était avec le cadre iOS. Le problème était avec la mise en œuvre d'UinavigationController. L'accident se produisait à l'intérieur du cadre lui-même. La seule issue possible a été d'instancier le contrôleur de navigation à chaque fois, avant de la présenter. Cela diminue les performances, mais n'avait pas d'autre option. Apple, a vraiment beaucoup de limitations et d'hypothèses. : P

Explication: Nous devions présenter un contrôleur de navigation avec une animation modale. Nous essayions d'éviter l'instanciation du contrôleur de navigation encore et encore en l'instanciant une fois et en essayant de le réutiliser. Cependant, à cause de cela, nous avons observé un accident qui se déroule un jour. Ne savez pas exactement ce que signifie l'accident, mais le corrigez en l'instanciant encore et encore.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top