2011-02-28 12 views

Respuesta

22

Si desea ver un NSArray y NSDictionary y objetos, etc. entonces usted puede imprimir directamente como NSLog(@"%@",object);

Si se trata de un objeto definido por el usuario, entonces usted necesita para mostrar llamando a la propiedad (atributo).

objeto definido

usuario con el nombre de objeto y propiedades como

NSString *property1; 
int property2; 
NSMutableArray *property3; 

los imprimen en la consola de la siguiente manera:

NSLog(@"%@, %d, %@" object.property1,object.property2,object.property3);

+0

lo son propiedades se publican? –

+0

@Veer: verifique el editado – Satya

0
NSLog(@"My object data:%@",[myObj someData]); 
NSLog(@"My object Other data:%@",[myObj someOtherData]); 

O directamente:

NSLog(@"%@",myObj); 
NSLog(@"Description:%@",[myObj description]); 
18

Si implementa el método -(NSString*)description en su clase, puede usar NSLog para generar un resumen de los datos. Por supuesto, también puede generar directamente cualquier propiedad.

Por ejemplo:

NSLog (@"%@ %d", object, object.integer); 

La primera parte llama al método y salidas description que; la segunda parte obtiene el valor de la propiedad entera del objeto y lo genera.

+0

Sabía que tenía que implementar una función para imprimirlo. Esto es exactamente lo que estoy buscando. Upvoted. ¡Gracias! –

11

todos los objetos Objective-C (esto viene de NSObject) tiene una propiedad llamada description. Entonces, si quieres imprimir información sobre tu clase, este es el camino a seguir.

@implementation MyClass 

- (NSString*)description 
{ 
    return [NSString stringWithFormat:@"MyClass:%@", @"This is my class"]; 
} 

así que si haces una llamada como esta.

MyClass *myClass = [[MyClass alloc] init]; 
NSLog(@"%@", myClass); 
NSLog(@"%@", [myClass description]); //Same as the line above 

Luego se escribirá "MyClass:This is my class" a la consola (en este caso se imprimirá dos veces).

7

Implemento description de la clase dada.

-(NSString*)description 
{ return [NSString stringWithFormat:@"<%@> name: `%@` size: `%@`", NSStringFromClass(self), self.name, NSStringFromCGSize(self.size)]; } 

NSLog(@"%@", object); // <Object> name: `Harry` size: `{2, 2}` 
+3

Esta es la respuesta correcta imo. – RegularExpression

Cuestiones relacionadas