J'essayais de consigner (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 de mal dans ce code; mon application se bloque alors que le contrôle revient à la déclaration NSLog.
Merci Prasad
Vous pouvez appeler ce qui suit pour imprimer la valeur que vous recherchez:
NSLog(@"width = %f, height = %f", mySize.width, mySize.height);
Essaye ça
CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49);
NSLog(@"size of tab is %@",NSStringFromCGSize(sizeOfTab));
Le plantage se produit car sizeOfTab
n'est pas au format NSString
.
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 inverse, CGSizeFromString()
, pour créer une structure CGSize
à partir d'une NSString
objet.
Apple documente le paramètre string
de CGSizeFromString(
string
)
comme suit:
Une chaîne dont le contenu est de la forme "{ w , h } ", où w est la largeur et h est la hauteur. Les valeurs w et h peuvent être des valeurs entières ou flottantes. Un exemple de chaîne valide est @ "{3.0,2.5}". La chaîne n'est pas localisée, les éléments sont donc toujours séparés par une virgule.
CGSize size = CGSizeFromString(@"{320,568}");
NSLog(@"Pretty printed size: %@", NSStringFromCGSize(size));
Pretty printed size: {320, 568}
% @ 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 une seule. C'est pourquoi votre application se bloque. Au lieu de cela, vous devez enregistrer les propriétés individuelles séparément, comme
NSLog(@"width is %f, height is %f.", sizeOfTab.width, sizeOfTab.height);
% f est utilisé car les propriétés largeur et hauteur sont du type float .
Pour d'autres conversions de format, consultez les documents: http://developer.Apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html
CGSize
a la largeur et la hauteur des membres qui sont de type CGFloat
. Vous pouvez les imprimer en utilisant ce qui suit
NSLog(@"Width = %f, height = %f",sizeOfTab.width, sizeofTab.height);
Ici self.view est la vue de la classe UIView. Vous pouvez imprimer n'importe quel cadre avec ce journal.
NSLog(@"self.view.Frame=%@", NSStringFromCGRect(self.view.frame));