contexte non valide 0x0 sous iOS 7.0 et à la dégradation des
J'ai lu que de nombreux résultats de recherche j'ai pu trouver sur ce redoutable problème, malheureusement, chacun d'entre eux semble se concentrer sur un appel de fonction.
Mon problème est que je reçois le même message d'erreur à partir de plusieurs fonctions, ce qui je suppose sont appelés de retour de fonctions que j'utilise.
Pour aggraver les choses, le code est au sein d'un cadre privé qui est importé dans un autre projet, et en tant que tel, le débogage n'est pas aussi simple?
Quelqu'un peut-il m'indiquer la bonne direction? J'ai le sentiment que je suis l'appel à certaines méthodes, à tort ou avec un mauvais contexte, mais la sortie de xcode n'est pas très utile à ce point.
: CGContextSetFillColorWithColor: contexte non valide 0x0. C'est
une grave erreur. Cette application, ou une bibliothèque, il utilise, est à l'aide d'un
non valide le contexte et contribuant ainsi à une dégradation globale
de la stabilité du système et la fiabilité. Cet avis est d'une courtoisie: veuillez
résoudre ce problème. Il deviendra une erreur fatale dans une prochaine mise à jour.: CGContextSetStrokeColorWithColor: contexte non valide 0x0. Cette
est une grave erreur. Cette application, ou une bibliothèque, il utilise, est à l'aide de
un contexte non valide et contribuant ainsi à un ensemble
la dégradation de la stabilité du système et la fiabilité. Le présent avis est un
courtoisie: veuillez corriger ce problème. Il deviendra une erreur fatale dans un
la prochaine mise à jour.CGContextSaveGState: contexte non valide 0x0. C'est une grave erreur.
Cette application, ou une bibliothèque, il utilise, est à l'aide d'un contexte non valide
et, ce faisant, de contribuer à une dégradation générale du système
la stabilité et la fiabilité. Cet avis est d'une courtoisie: veuillez corriger ce
problème. Il deviendra une erreur fatale dans une prochaine mise à jour.: CGContextSetFlatness: contexte non valide 0x0. C'est une grave
erreur. Cette application, ou une bibliothèque, il utilise, est à l'aide d'un invalide
contexte et contribuant ainsi à une dégradation globale de
la stabilité du système et la fiabilité. Cet avis est d'une courtoisie: veuillez
résoudre ce problème. Il deviendra une erreur fatale dans une prochaine mise à jour.: CGContextAddPath: contexte non valide 0x0. C'est une grave
erreur. Cette application, ou une bibliothèque, il utilise, est à l'aide d'un invalide
contexte et contribuant ainsi à une dégradation globale de
la stabilité du système et la fiabilité. Cet avis est d'une courtoisie: veuillez
résoudre ce problème. Il deviendra une erreur fatale dans une prochaine mise à jour.: CGContextDrawPath: contexte non valide 0x0. C'est une grave
erreur. Cette application, ou une bibliothèque, il utilise, est à l'aide d'un invalide
contexte et contribuant ainsi à une dégradation globale de
la stabilité du système et la fiabilité. Cet avis est d'une courtoisie: veuillez
résoudre ce problème. Il deviendra une erreur fatale dans une prochaine mise à jour.: CGContextRestoreGState: contexte non valide 0x0. C'est un
erreur grave. Cette application, ou une bibliothèque, il utilise, est à l'aide d'un
non valide le contexte et contribuant ainsi à une dégradation globale
de la stabilité du système et la fiabilité. Cet avis est d'une courtoisie: veuillez
résoudre ce problème. Il deviendra une erreur fatale dans une prochaine mise à jour.: CGContextGetBlendMode: contexte non valide 0x0. C'est une grave
erreur. Cette application, ou une bibliothèque, il utilise, est à l'aide d'un invalide
contexte et contribuant ainsi à une dégradation globale de
la stabilité du système et la fiabilité. Cet avis est d'une courtoisie: veuillez
résoudre ce problème. Il deviendra une erreur fatale dans une prochaine mise à jour.
Ces erreurs peuvent se produire lorsque une vue personnalisée est présentée, ou de l'une de ses les classes héritées. À quel point ils se reproduisent plusieurs fois, jusqu'à ce que le clavier ne fournira pas de n'importe quelle entrée. Les événements tactiles sont toujours enregistrés, mais le système ralentit, et peut éventuellement conduire à la non alloué objet erreurs.
EDIT #1: j'ai accès au cadre d'être importés, mais je ne vois rien de bizarre dans les classes qui, à l'origine du problème.
EDIT #2: je viens de recevoir un mail d'iOS 7.1 a été publié pour les développeurs. Je suis curieux de voir si cela va loin, ou s'aggravent, ou peut être résolu.
- Nous obtenons cette même erreur dans notre application de la norme de la zone de texte sur le formulaire. Si vous touchez la zone de texte à plusieurs reprises, tandis que le clavier est de montrer, vous obtiendrez cette erreur apparaissant.
- Même ici. Parfois des centaines de ces journaux, parfois zéro. Je pensais que c'était parce que je suis primordial drawRect: mais il semble être quelque chose d'autre. L'ignorer pour l'instant.
- Je viens de terminer le premier tutoriel sur developer.apple.com (copier le code proposé par Apple) et j'ai ce même message d'erreur. Peut-être si les programmeurs plus expérimentés regardez le tutoriel qu'ils sont en mesure de déterminer la cause de ce problème.
- Voir ci-dessous (désactiver la mise en forme automatique dans le point de vue où vous êtes en utilisant les éléments d'INTERFACE utilisateur personnalisés)
- Arrive encore en 2016 (XCode 7, iOS 9.2), toujours pas de dommages apparents fait.
Vous devez vous connecter pour publier un commentaire.
D'autres vous demanderont de poster le code qui vous donne accès à une base contexte graphique, mais je doute que c'est la question. Ces contexte non valide 0 x 0 messages d'erreur communs et faciles à reproduire dans iOS 7. En fait, je peux reproduire l'erreur à l'aide de storyboard avec zéro code. Je fais glisser un objet UITextField sur la toile de l'IB, exécutez l'application, et appuyez deux fois sur l'intérieur de la zone de texte.
Dans de nombreuses situations, il est difficile pour moi de prendre le contexte non valide 0 x 0 messages d'erreur au sérieux. Je ne sais pas si votre situation l'exige une plus grande inquiétude (je suis d'accord avec Rob Napier qu'il vaut la peine de l'enquête, surtout si vous êtes explicitement à l'aide d'un contexte graphique).
Dans mes propres projets, je suis en espérant que beaucoup de ces erreurs disparaissent comme par magie un jour (mais ce jour n'est pas venu avec 7.0.3).
Mise à jour: Après l'installation de Xcode 5.1 et le ciblage iOS 7.1, je ne peut plus reproduire l'erreur en tapant deux fois sur l'intérieur d'un champ de texte vide.
Si vous êtes curieux de ce code est à l'origine de ces journaux, vous pouvez ajouter une symbolique point d'arrêt sur
CGPostError
.CGPostError
j'ai vu thas quelque chose n'allait pas avec la barre de statut, certains trucs avec la batterie de décalage, et ainsi de suite. Ce qui se passe sur iOS 9 Simulateur pendant l'application se lance.Ces sortes d'erreurs sont historiquement le résultat de l'appel de Base fonctions Graphiques lorsqu'il n'est pas dans un contexte qui est établi dans
drawRect
ou entre les appels commeUIGraphicsBeginImageContext
etUIGraphicsEndImageContext
(ou d'autres UIKit fonctions comme ça qui marquent le début et la fin d'un contexte).Après avoir dit que, bien que, bilobatum est exact que cette séquence particulière d'erreurs peut être un résultat de l'iOS 7 bug il fait référence dans sa réponse. Si pas de voir ces erreurs dans votre iOS6 cibles, ou si après une analyse rapide de ce cadre privé, vous ne trouverez pas de suspect Graphiques de Base des appels, il peut juste être cet iOS 7 bug. Bonne prise, bilobatum!
assurez-vous que la taille.la largeur ou de la taille.la hauteur n'est pas 0,
vous pouvez ajouter un symbole de point d'arrêt à CGPostError pour vérifier
J'ai eu ce problème avec un simple objet UITextField (clavier ne s'affiche pas et beaucoup de différentes contexte non valide les messages d'erreur sur la console).
Je viens de trouver une solution à un autre problème sur DONC: Impossible de trouver l'exécutable pour CFBundle CertUIFramework.axbundle
Viens de faire:
Le problème ne devrait pas être là plus
Dans mon cas, j'ai ces erreurs dans ce code:
après quelques réflexions et test que j'ai à détecter le problème - c'était cet appel:
que je détecte dans mon code de cet appel n'est pas nécessaire, en raison de remplissage sera effectué par un autre moyen - j'ai donc tout simplement le supprimer.
J'ai eu ce même problème et j'ai oublié d'importer QuartzCore/QuartzCore.h, Cela a résolu mon problème avec ces erreurs.
Droit De Réponse :
Le problème, c'est parce que vous avez utilisé graphiques de Base des éléments comme CGContext etc dans d'autres que
- (void)drawRect:(CGRect)rect
cette méthode.Maintenant de bien vouloir déplacer votre code de cette méthode. Et il strop vous donnant des avertissements/Erreurs.
Je recevais ce message, car j'ai été en utilisant un UIColor objet comme un attribut dans un NSAttributedString dictionnaire qui a été utilisé dans un CATextLayer objet. J'ai changé le dictionnaire de tenir une CGColorRef et l'erreur a disparu.
J'ai eu des cas où le contexte retourné à partir de
UIGraphicsGetCurrentContext()
estNULL
, et si vous essayez de l'utiliser pour quoi que ce soit ce message s'affiche. Il est le point de vue de la responsabilité de pousser un contexte à l'aide deUIGraphicsPushContext
avant de faire appel àdrawRect:
, si vous appelezdrawRect:
directement au lieu de[view setNeedsDisplay]
, vous risquez le contexte n'étant pas encore fixé. Mon intuition est que, avant iOS 7 le contexte a été poussé pour la vue surinit
, et maintenant sur iOS 7 le contexte n'est pas poussé jusqu'à la première foisdrawRect:
est sur le point d'être appelé. Je soupçonne que certains UIKit code appelledrawRect:
directement et c'est pourquoi il y a des problèmes avec un peu de code, même lorsqu'il n'dessin personnalisé est fait.Solutions (si vous faites du dessin personnalisé):
drawRect:
directement, utilisez[view setNeedsDisplay]
ou si vous avez besoin immédiat de dessin utilisation[view.layer draw]
drawRect:
obtenir le contexte, mais ne l'utilisez pas à l'extérieur du corps de cette instruction siif (context) {<do drawing here>}
Désactivation de mise en forme automatique dans la vue provoque cette erreur de s'en aller, dans certains cas, lorsque vous êtes en plaçant et déplaçant les éléments de l'INTERFACE utilisateur (en particulier ceux personnalisées qui sont attirés par programme) dans une vue. J'ai été en utilisant JVFloatLabeledTextField quand j'ai découvert ce problème.
Dans certains cas, vous pouvez avoir besoin d'inclure la ligne
#import <QuartzCore/QuartzCore.h>
.J'ai eu cette erreur dans le drawInContext(..) la méthode de ma coutume CALayer mise en œuvre. UIBezierPath essaie d'utiliser le UIGraphicsGetCurrentContext() qui est nulle par défaut dans une couche personnalisée. Le la documentation en ligne explique cela très clairement -
Voici le code que finalement travaillé avec mes commentaires en ligne (code Swift, mais la solution est la même, peu importe)
Dans mon cas, j'ai eu cet avertissement lors de la création d'un resible image avec cap des encarts. Le problème était que je n'étais pas en laissant au moins 1 pixel dans la "illimitée" de la zone.
J'ai été la création de UIImage de contexte à l'aide de code ci-dessous:
Donc j'obtenais l'erreur.
J'ai donc enlevé les Données Dérivées du contenu, redémarré mon XCode. Et cela a fonctionné.
J'ai le même problème.
Dans mon projet, j'ai essayer de créer un champ de texte et de l'ajouter à mon fichier pdf.
Ancien Code:
Après avoir résolu ce problème,le code a changé :
J'ai trouvé la solution à UIColor SetFill ne fonctionne pas.
Et Merci de l'aide.
J'ai obtenu l'erreur avec le code
et après avoir retiré le code
Le monde est devenu silencieux
Pour moi, la réponse est que j'ai été inutilement libérant le contexte graphique dans
drawRect:
. Lancer une symbolique point d'arrêt sur CGPostError m'a indiqué le coupable.Eu cette erreur que j'avais mis
Sans l'implémentation de la déléguer à des routines. La suppression de cette ligne a résolu le problème pour moi
J'ai eu ce problème dans un UITextField, quand j'ai eu le contact avec un champ vide avec juste le texte de l'espace réservé. J'ai utilisé le travail autour d'éliminer les champs vides:
Pour moi j'ai été faire cette erreur parce que je rejetais la CGContextRef comme indiqué ci-dessous:
Retrait de la libération a résolu le problème
Je l'ai eu quand j'ai tapé le nom de l'image dans activityImage méthode dans UIActivity sous-classe
Tapant l'image de droite résolu pour moi.
Désinstaller l'application à partir de simulateur et de courir à nouveau
Comme d'autres qui ont commenté ici je recevais cet avertissement lorsque j'ai fait une des opérations suivantes:
Sur un champ de texte vide: en Double-tapant, touchez et maintenez, longtemps seul robinet.
Cela ne semble affecter que les iOS 7.0.3
J'ai découvert un travail autour, l'alarme ne sera pas déclenchée si votre espace de travail n'est pas NULL.
Donc je n'ai la suite dans textFieldDidBeginEditing:
J'ai testé cela dans le simulateur iOS 7.0.3 sur l'iphone 4s, 5 et 5s, et ne plus recevoir le message d'avertissement. J'ai également testé cette dans le simulateur iOS 8 sur l'iphone 6 et 6 plus, mais je ne crois pas que iOS 8 est affectée.
Est allé par le biais de deux jours de frustration avant de découvrir ce travail autour de sorte que j'espère vraiment que ma réponse vient en aide à ceux d'entre vous qui ont le même problème.
Si l'erreur se produit lorsque vous utilisez UIBezierPath et de définir la couleur de contour ou de fond, mettre le jeu code de couleur dans drawRect fonction plutôt qu'à d'autres endroits.
C'est hacky mais il a travaillé pour moi.
J'ai configuré le
UIImageView
dans leUITableViewCell
'sinit
, lui donner une taille et des contraintes.Alors à mon avis du contrôleur de
cellForRowAtIndexPath
je fais ceci:Et qui évite l'erreur, puis de moins que dans la fonction que j'ai mis l'image réelle pour que
UIImageView
. Le code ci-dessus est un bon défaut