2010-03-28 22 views
8

Puedo acceder y mostrar self.view y ver el marco en el registro, pero cuando intento acceder a self.view.frame obtengo un nulo. A continuación se muestra la salida del registro deObjective-C Puedo acceder a self.view pero no a self.view.frame

NSLog(@"Show self.view:%@",self.view); 
NSLog(@"Show self.view.frame:%@",self.view.frame); 

-

2010-03-28 11:08:43.373 vivmed_CD_Tab[20356:207] Show self.view:<UITableView: 0x4001600; frame = (0 0; 320 583); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x3b21270>> 
2010-03-28 11:08:43.373 vivmed_CD_Tab[20356:207] Show self.view.frame:(null) 

Puede alguien explicar por qué es self.view.framenull pero self.view muestra un marco? Mi objetivo es cambiar el tamaño del marco.

Saludos, Grant

Respuesta

19

Un problema en el código que has enviado es que se está imprimiendo el marco (una CGRect) como un objeto, que no va a funcionar. Pruebe:

NSLog(@"Show self.view.frame: %u", self.view.frame); // as a pointer 

NSLog(@"Show self.view.frame: %@", NSStringFromCGRect(self.view.frame)); // as a string 
+4

¡Así es! Los primeros dos campos de CGRect serían cero, por lo que el tiempo de ejecución de Obj-C lo interpreta como un objeto con un puntero de clase nulo. Si el marco tuviera un origen diferente, estarías chocando. – codewarrior

Cuestiones relacionadas