Domanda

Ho cercato di risolverlo negli ultimi due giorni. Impossibile capire perché la mia app si blocca.

sto usando JASidePanel Biblioteca per raggiungere l'effetto del panel nella mia app. Il pannello laterale sinistro è una visione della tabella che agisce come una guida di navigazione per il pannello centrale. In uno scenario, quando una particolare opzione viene selezionata nel pannello laterale sinistro (quando questo è aperto), si suppone che il pannello centrale chiuda il pannello laterale sinistro e presenti un altro controller di navigazione (con un coerente) Controller di vista root. Tuttavia, a volte questa transizione si blocca la mia app.

Ho osservato che l'incidente non si verifica nel codice di Jasidepanel o nel codice controller di visualizzazione del pannello centrale ([self presentViewController:self.cityNavigationController animated:YES completion:nil];). Ho osservato chiaramente che l'app si arresta in modo anomalo a causa di un arresto interno a causa del framework iOS, ho esaminato ogni istruzione per istruzione e ho capito.

Ma comunque, penso che sto facendo qualcosa di sbagliato. Qualcuno può suggerirmi perché questo incidente potrebbe accadere? Cosa dovrei cercare per risolvere questo problema? Eventuali passaggi o procedure che posso/dovrei seguire per rilevare il problema?

Qualsiasi aiuto è apprezzato.

Registro del dispositivo:

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
È stato utile?

Soluzione

Bene, se per qualcuno questo aiuta.

Il problema era con il framework iOS. Il problema era con l'implementazione di UinavigationController. L'incidente stava accadendo all'interno del framework stesso. L'unica via d'uscita possibile era quella di istanziare il controller di navigazione ogni volta, prima di presentarlo. Ciò riduce le prestazioni, ma non ha avuto altra opzione. Apple, ha davvero molte limitazioni e ipotesi. :P

Spiegazione: Avevamo bisogno di presentare un controller di navigazione con l'animazione modale. Stavamo cercando di evitare l'istanza del controller di navigazione ancora e ancora, istanziandolo una volta e cercando di riutilizzarlo. Tuttavia, per questo motivo, abbiamo osservato un incidente che sta accadendo qualche volta. Non so esattamente cosa significhi l'incidente, ma lo ha risolto istanziandolo ancora e ancora.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top