Estaba tratando de registrar (imprimir) el valor del objeto CGSize de esta manera:
CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49);
NSLog(@"size of tab is %@",sizeOfTab);
¿Hay algo incorrecto en este código? mi aplicación se bloquea mientras el control llega a la declaración NSLog.
Gracias Prasad
iphone
objective-c
ios4
Prasad
fuente
fuente
Respuestas:
Puede llamar a lo siguiente para imprimir el valor que busca:
NSLog(@"width = %f, height = %f", mySize.width, mySize.height);
fuente
Prueba esto
CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49); NSLog(@"size of tab is %@",NSStringFromCGSize(sizeOfTab));
El bloqueo se produce porque
sizeOfTab
no está enNSString
formato.fuente
sizeOfTab
no es un objeto (cualquier objeto funcionaría, no solo aNSString
).CGSize
es una estructura.self.frame.size.width/tabCount
Como mencionó JoeBlow ( noté después de escribir y formatear esta respuesta ), también existe la función UIKit
NSStringFromCGSize()
, para una impresión bonita, y su inversaCGSizeFromString()
, para crear unaCGSize
estructura a partir de unNSString
objeto.Apple documenta el
string
parámetro de la siguiente manera:CGSizeFromString(
string
)
Ejemplo
CGSize size = CGSizeFromString(@"{320,568}"); NSLog(@"Pretty printed size: %@", NSStringFromCGSize(size));
Salida
Pretty printed size: {320, 568}
Otras funciones útiles ( referencia de CGGeometry )
fuente
% @ significa que está intentando insertar una cadena. CGSize no es una cadena y no se puede convertir automáticamente en una. Es por eso que su aplicación falla. En su lugar, debe registrar propiedades individuales por separado, como
NSLog(@"width is %f, height is %f.", sizeOfTab.width, sizeOfTab.height);
Se utiliza% f porque las propiedades de ancho y alto son del tipo float .
Para otras conversiones de formato, consulte los documentos: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html
fuente
CGSize
tiene los miembros de ancho y alto que son de tipoCGFloat
. Puede imprimirlos utilizando los siguientesNSLog(@"Width = %f, height = %f",sizeOfTab.width, sizeofTab.height);
fuente
Aquí self.view es la vista de UIView Class. Puede imprimir cualquier fotograma con este registro.
NSLog(@"self.view.Frame=%@", NSStringFromCGRect(self.view.frame));
fuente