Je veux pouvoir déboguer les structures C sans avoir à taper explicitement toutes les propriétés qui les composent.
c'est-à-dire que je veux pouvoir faire quelque chose comme ça:
CGPoint cgPoint = CGPointMake(0,0);
NSLog(@"%@",cgPoint);
De toute évidence, le '% @' ne fonctionnera pas, d'où la question.
c
objective-c
cocoa
cocoa-touch
mazniak
la source
la source
Réponses:
Vous pouvez essayer ceci:
Il existe un certain nombre de fonctions fournies par UIKit qui convertissent les différentes structures CG en
NSString
s. La raison pour laquelle cela ne fonctionne pas est parce qu'il%@
signifie un objet. ACGPoint
est une structure C (tout commeCGRect
s etCGSize
s).la source
NSPoint
puis appelerNSStringFromPoint
. Par exemple:NSStringFromPoint(NSPointFromCGPoint(point))
Il y a quelques fonctions comme:
Un exemple:
la source
la source
J'utilise la macro suivante pour m'aider avec NSRect:
Vous pouvez faire quelque chose de similaire pour CGPoint:
L'utiliser comme suit:
Produirait ce qui suit:
la source
Vous pouvez utiliser
NSValue
pour cela. Un objet NSValue est un simple conteneur pour un seul élément de données C ou Objective-C. Il peut contenir n'importe quel type scalaire tel que int, float et char, ainsi que des pointeurs, des structures et des identifiants d'objet.Exemple:
PRODUCTION :
NSPoint: {10, 30}
J'espère que cela vous aide.
la source
Puisque le RSS cassé de Stack Overflow vient de ressusciter cette question pour moi, voici ma solution presque générale: JAValueToString
Cela vous permet d'écrire
JA_DUMP(cgPoint)
et de vouscgPoint = {0, 0}
connecter.la source
Oui, vous pouvez utiliser quelques fonctions comme ci-dessous: Vous devez d'abord convertir la structure CGPoint en chaîne, voir l'exemple
Par exemple:
Comme ça...
la source
la source