¿Cuál es el equivalente de Objective-C para “toString ()”, para su uso con NSLog?

StackOverflow https://stackoverflow.com/questions/1104746

  •  12-09-2019
  •  | 
  •  

Pregunta

¿Hay un método que puedo anular en mis clases personalizadas para que cuando

      NSLog(@"%@", myObject) 

se llama, se imprimirá los campos (o lo que sea que considero importante) de mi objeto? Creo que estoy buscando el Objective-C equivalente de toString() de Java.

¿Fue útil?

Solución

Es el método de instancia description, declarada como:

- (NSString *)description

Aquí hay un ejemplo de implementación (gracias a grahamparks):

- (NSString *)description {
   return [NSString stringWithFormat: @"Photo: Name=%@ Author=%@", name, author];
}

Otros consejos

Esto, unido al @implementation de su clase Photo:

- (NSString *)description {
   return [NSString stringWithFormat:@"Photo: Name=%@ Author=%@",name,author];
}

Puede reemplazar el método descripción de NSObject:

- (NSString *)description

En el tema de la tala Recomiendo este publicar para un mejor registro en Objective-C.

Hay dos funciones que se pueden utilizar.

- (NSString*)description

Esto se mostrará cuando se pone el objeto como, es decir, un parámetro para NSLog. La otra función de descripción es:

- (NSString*)debugDescription

Esto se llama cuando no po anInstanceOfYourClass en la ventana de comandos de depuración. Si la clase no tiene una función debugDescription, a continuación, sólo description será llamado.

Tenga en cuenta que la NSObject clase base hace description tiene implementado, pero es bastante escueto: sólo se muestra la dirección del objeto. Esto es por eso que recomendamos que implemente description en cualquier clase que desea obtener información de, sobre todo si se utiliza el método description en el código. Si usted hace uso de description en su código, le sugiero que implementa debugDescription así, también haciendo debugDescription más prolija.

Esta es la salida de las voces disponibles:

    NSLog((@"speechVoices:%", [[AVSpeechSynthesisVoice speechVoices] description] ));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top