Ich habe versucht, den Wert des CGSize-Objekts wie folgt zu protokollieren (zu drucken):
CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49);
NSLog(@"size of tab is %@",sizeOfTab);
Ist in diesem Code etwas falsch? Meine App stürzt ab, während die Steuerung zur NSLog-Anweisung kommt.
Danke Prasad
iphone
objective-c
ios4
Prasad
quelle
quelle
Antworten:
Sie können Folgendes aufrufen, um den gewünschten Wert auszudrucken:
quelle
Versuche dies
Der Absturz tritt auf, weil er
sizeOfTab
nicht imNSString
Format vorliegt.quelle
sizeOfTab
es sich nicht um ein Objekt handelt (jedes Objekt würde funktionieren, nicht nur einNSString
).CGSize
ist eine Struktur.self.frame.size.width/tabCount
Wie JoeBlow erwähnte ( ich habe es nach dem Eingeben und Formatieren dieser Antwort bemerkt ), gibt es auch die UIKit-Funktion
NSStringFromCGSize()
zum hübschen Drucken und umgekehrtCGSizeFromString()
, zum Erstellen einerCGSize
Struktur aus einemNSString
Objekt.Apple dokumentiert den
string
Parameter wie folgt:CGSizeFromString(
string
)
Beispiel
Ausgabe
Pretty printed size: {320, 568}
Andere nützliche Funktionen ( CGGeometry-Referenz )
quelle
% @ bedeutet, dass Sie versuchen, eine Zeichenfolge einzufügen. CGSize ist keine Zeichenfolge und kann nicht automatisch in eine Zeichenfolge konvertiert werden. Deshalb stürzt Ihre App ab. Stattdessen müssen Sie einzelne Eigenschaften wie z
% f wird verwendet, da die Eigenschaften width und height vom Typ float sind .
Weitere Formatkonvertierungen finden Sie in den Dokumenten: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html
quelle
CGSize
hat die Mitglieder Breite und Höhe, die vom Typ sindCGFloat
. Sie können sie wie folgt druckenquelle
Hier ist self.view die Ansicht der UIView-Klasse. Mit diesem Protokoll können Sie jeden Rahmen drucken.
quelle