J'ai reçu ce rapport de panne, mais je ne sais pas comment le déboguer.
Fatal Exception NSInvalidArgumentException
Can't add self as subview
0 ... CoreFoundation __exceptionPreprocess + 130
1 libobjc.A.dylib objc_exception_throw + 38
2 CoreFoundation -[NSException initWithCoder:]
3 UIKit -[UIView(Internal) _addSubview:positioned:relativeTo:] + 110
4 UIKit -[UIView(Hierarchy) addSubview:] + 30
5 UIKit __53-[_UINavigationParallaxTransition animateTransition:]_block_invoke + 1196
6 UIKit +[UIView(Animation) performWithoutAnimation:] + 72
7 UIKit -[_UINavigationParallaxTransition animateTransition:] + 732
8 UIKit -[UINavigationController _startCustomTransition:] + 2616
9 UIKit -[UINavigationController _startDeferredTransitionIfNeeded:] + 418
10 UIKit -[UINavigationController __viewWillLayoutSubviews] + 44
11 UIKit -[UILayoutContainerView layoutSubviews] + 184
12 UIKit -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 346
13 QuartzCore -[CALayer layoutSublayers] + 142
14 QuartzCore CA::Layer::layout_if_needed(CA::Transaction*) + 350
15 QuartzCore CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 16
16 QuartzCore CA::Context::commit_transaction(CA::Transaction*) + 228
17 QuartzCore CA::Transaction::commit() + 314
18 QuartzCore CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 56
La version iOS est 7.0.3. Quelqu'un a-t-il fait l'expérience de ce crash bizarre ?
UPDATE :
Je ne sais pas où dans mon code a provoqué ce crash, donc je ne peux pas poster le code ici, désolé.
Deuxième UPDATE
Voir la réponse ci-dessous.
3 votes
Pouvez-vous nous montrer votre code ?
43 votes
Désolé mais je ne comprends pas votre réaction excessive. L'erreur de pile est claire sur le problème. Donc premièrement, vous pouvez laisser l'utilisateur mettre plus de code comme on lui a demandé (seulement 1h la question posée et vous demandez de la fermer immédiatement). Deuxièmement, j'ai reçu un downvote sans raison puisque ma réponse est claire. La question est "Quelqu'un a t-il fait l'expérience de ce crash bizarre ?". Et j'ai dit pourquoi il a eu ça. Même si ce n'est pas spécifiquement situé dans son code.
0 votes
@AncAinu 1) Cette question est parfaite pour être fermée pour la raison donnée, elle peut être rouverte quand ils mettent à jour leur question avec le code correct. 2) Je n'ai rien à voir avec votre vote négatif, mais comme il y a actuellement plus de votes en faveur de la fermeture, cela signifie qu'il y a plus d'utilisateurs qui sont d'accord avec moi. Et si la question est "Quelqu'un a-t-il fait l'expérience de ce crash bizarre ?", une réponse très simple de OUI peut être mis, les questions de ce type ne sont pas autorisées et seront supprimées. Ce n'est pas comme ça que fonctionne stackoverflow. S'ils ne sont pas prêts à partager leur code, ils doivent être prêts à le faire fermer. SIMPLE
9 votes
Cette question est correcte. L'utilisateur ne peut pas donner le code exact de l'erreur dans cette situation, car il ne sait pas dans quel contrôleur de vue quelque chose ne va pas.
16 votes
Nous utilisons Crashlytics et avons plus de 30 utilisateurs qui ont fait planter notre application avec le message "Can't add self as subview", bien sûr, nous n'avons pas de code qui essaie de s'ajouter comme une sous-vue. D'après le backtrace, il n'y a aucune référence à notre application.
1 votes
Le seul endroit dans mon code où j'ai pu trouver l'ajout de soi comme sous-vue était SVSegmentedControl. J'utilise également SWRevealViewController, et je me demande si cette erreur n'a pas quelque chose à voir avec cela ?
50 votes
Vote pour la réouverture ; les personnes qui la ferment ne font pas beaucoup de développement iOS, apparemment, puisque c'est un problème commun introduit par iOS7 et qui tue tout un tas d'applications qui étaient bien sous iOS6 (je l'ai vu sur plusieurs projets de différentes sociétés). C'est dommage que cette question soit un top-hit sur Google, mais que quelques personnes à courte vue l'aient fermée.
2 votes
Nous avons également constaté ce phénomène avec les tests des utilisateurs finaux. Pourquoi fermer un problème lorsqu'il est clairement décrit et qu'il s'agit d'un problème réel ?
0 votes
L'ajout de la vue secondaire doit être effectué par l'utilisateur. Il y a peut-être du code dans viewDidLoad qui pourrait être déplacé à un endroit ultérieur du cycle de vie. Peut-être viewWillLayoutSubviews ?
0 votes
Arnol (ou quelqu'un d'autre) : Avez-vous trouvé le moyen le plus efficace de prévenir le problème ?
0 votes
Je vois également ceci. Je ne trouve pas non plus d'endroit dans notre code où nous poussons un viewcontroller depuis viewDidLoad.
0 votes
J'ai un rapport d'accident similaire mais je n'arrive pas à comprendre pourquoi. stackoverflow.com/questions/21989412/
0 votes
J'ai un problème similaire et je ne parviens pas non plus à le reproduire. Tout ce que j'ai, ce sont des logs qui ne mènent à rien d'utile :(
0 votes
Je constate également ce problème et je n'ai aucune idée de la façon de le reproduire. Aucun indice de mon propre code dans la trace de la pile.... ?!? aucune idée sur la façon de déboguer/reproduire ce problème ?