Quel est l’équivalent d’Objective-C pour «toSsortingng ()», à utiliser avec NSLog?

Existe-t-il une méthode que je peux remplacer dans mes classes personnalisées afin que

NSLog(@"%@", myObject) 

est appelé, il va imprimer les champs (ou tout ce que je juge important) de mon object? Je suppose que je cherche l’équivalent d’Objective-C de toSsortingng() de Java.

C’est la méthode de l’instance de description , déclarée comme:

 - (NSSsortingng *)description 

Voici un exemple d’implémentation (grâce à grahamparks):

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

Ajoutez ceci à la mise en œuvre de votre classe Photo:

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

Vous pouvez remplacer la méthode de description de NSObject:

 - (NSSsortingng *)description 

En ce qui concerne la journalisation, je recommande cet article pour une meilleure journalisation dans Objective-C.

Il y a deux fonctions que vous pouvez utiliser.

 - (NSSsortingng*)description 

Cela sera affiché lorsque vous NSLog votre object sous la forme IE, un paramètre pour NSLog . L’autre fonction de description est:

 - (NSSsortingng*)debugDescription 

Cela sera appelé lorsque vous faites po anInstanceOfYourClass dans la fenêtre de commande de débogage. Si votre classe ne possède pas de fonction debugDescription , alors seule la description sera appelée.

Notez que la classe de base NSObject a une description implémentée, mais elle est assez simple: elle affiche uniquement l’adresse de l’object. C’est pourquoi je vous recommande d’implémenter la description dans n’importe quelle classe dont vous souhaitez extraire des informations, en particulier si vous utilisez la méthode de description dans votre code. Si vous utilisez la description dans votre code, je vous suggère d’implémenter debugDescription également, ce debugDescription rend également debugDescription plus verbeux.

Cela produira les voix disponibles:

  NSLog((@"speechVoices:%", [[AVSpeechSynthesisVoice speechVoices] description] ));