lldb erreur: propriété ne trouve pas dans l'objet de type
Je suis en train de déboguer mon application iOS à l'aide de lldb et je me fais vraiment bizarre erreurs de débogage.
Quelques lignes avant de mon point d'arrêt, j'ai:
CGRect frame = view.frame;
Qui je peux accéder sans problème avec print frame
commande en lldb. Cependant, lorsque j'essaie d'accéder au cadre de nouveau dans lldb, j'type print view.frame
et obtenez l'erreur suivante:
error: property 'frame' not found on object of type 'UIView *'
Ce n'est pas logique que je puisse vérifier la view
est un UIView*
instance et a une propriété valide appelé frame en tapant po view
et d'obtenir des résultats corrects:
(UIView *) $4 = 0x1e199bf0 <MyAppCustomView: 0x1e199bf0; frame = (3398 3396; 204 208); layer = <CALayer: 0x1e199ce0>>
Ce lldb d'erreur m'arrive beaucoup, et je ne pouvais pas trouver la cause de cette erreur. Quelqu'un a suggéré à La propriété 'count' ne trouve pas sur l'objet de type " NSMutableArray *' PO commande en lldb qu'on pourrait utiliser gdb que (gdb) p view.frame
mais je suis error: '(gdb)' is not a valid command.
et je soupçonne fortement qu'une commande gdb serait "le travail?" à l'intérieur d'un autre débogueur de toute façon.
Des suggestions ou des solutions de contournement pour ce bug qui se produit au hasard?
- imprimer [afficher l'image]
- déjà essayé: erreur: pas de méthode connue pour le 'cadre'; cast le message envoyé à la méthode type de retour de la
- imprimer [(UIView*)voir l'image] ne fonctionne pas, soit
- print (CGRect)[afficher l'image]
- Cela arrive aussi à moi parfois.Dans ce cas, je viens de l'utiliser NSLog() ou l'attribuer à un temporairement objet/struct que je vais imprimer avec lldb.
- c'est une solution de contournement, mais il n'est pas très pratique lorsque vous déboguez et ont besoin de la valeur d'une variable et que vous n'avez pas nslogged il.
- Il semble que vous devez utiliser GDB au lieu de LLDB, voir ici: stackoverflow.com/questions/9515630/...
Vous devez vous connecter pour publier un commentaire.
La notation de point pour l'envoi d'un message n'est pas pris en charge dans lldb lors de l'utilisation d'Objective-C. l'Utilisation du support de la notation et de la fonte le résultat de CGRect:
Juste au cas ci-dessus ne fonctionne pas (ce qui n'était pas pour moi, à la recherche de l'image pour une variable de cellules, classe dérivée de UITableViewCell): forcer l'extra parenthèses semblait aider lldb la petite comptine de cerveau:
presto magico:
J'ai dû désactiver (décocher) Fil de Désinfectant dans Xcode > Produit > Système > Modifier le Régime > Exécuter > Diagnostics. Avec du Fil de Désinfectant activé je n'ai pas pu accéder à de nombreux NSView propriétés (par exemple, les limites, le cadre) par le biais de LLDB.