J'essayais de journaliser (imprimer) la valeur de l'objet CGSize comme ceci:
CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49);
NSLog(@"size of tab is %@",sizeOfTab);
Y a-t-il quelque chose qui ne va pas dans ce code; mon application plante pendant que le contrôle arrive à l'instruction NSLog.
Merci Prasad
iphone
objective-c
ios4
Prasad
la source
la source
Réponses:
Vous pouvez appeler ce qui suit pour imprimer la valeur que vous recherchez:
la source
Essaye ça
Le crash se produit car il
sizeOfTab
n'est pas auNSString
format.la source
sizeOfTab
n'est pas un objet (n'importe quel objet fonctionnerait, pas seulement aNSString
).CGSize
est une structure.self.frame.size.width/tabCount
Comme JoeBlow l'a mentionné ( j'ai remarqué après avoir tapé et formaté cette réponse ), il y a aussi la fonction UIKit
NSStringFromCGSize()
, pour une jolie impression, et son inverseCGSizeFromString()
, pour créer uneCGSize
structure à partir d'unNSString
objet.Apple documente le
string
paramètre de comme suit:CGSizeFromString(
string
)
Exemple
Production
Pretty printed size: {320, 568}
Autres fonctions utiles ( référence CGGeometry )
la source
% @ signifie que vous essayez d'insérer une chaîne. CGSize n'est pas une chaîne et ne peut pas être converti automatiquement en un. C'est pourquoi votre application plante. Au lieu de cela, vous devez enregistrer les propriétés individuelles séparément, comme
% f est utilisé car les propriétés width et height sont du type float .
Pour les autres conversions de format, consultez la documentation: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html
la source
CGSize
a les memebers largeur et hauteur qui sont de typeCGFloat
. Vous pouvez les imprimer en utilisant lesla source
Ici, self.view est la vue de la classe UIView. Vous pouvez imprimer n'importe quel cadre avec ce journal.
la source