c'est-à-dire% @ pour les chaînes,% f pour les doubles ... Je ne connais pas le mot pour ces espaces réservés, mais ce serait bien d'avoir une liste pour imprimer les valeurs booléennes et autres.Existe-t-il une vue d'ensemble de tous les codes pouvant être utilisés dans NSLog()?
Répondre
Depuis NSLog
prend un NSString
comme argument, il utilise le format NSString
spécificateurs. Ceci est virtuellement identique aux spécificateurs printf
. En outre, le spécificateur %@
n'est pas limité aux objets NSString
, mais concerne tous les objets Objective-C. La classe de base NSObject
fournit une description générique de l'objet constitué de sa classe et de son adresse, mais de nombreux objets fourniront des informations spécifiques à leur type, telles que les classes de collection (NSArray
, NSDictionary
) qui fourniront un vidage bien structuré de leur contenu. Vous pouvez fournir ceci pour vos propres objets que vous créez en remplaçant -description
(voir la documentation pour plus d'informations, y compris la capacité de localisation).
Voir aussi: NSString Format Specifiers
C'est une chaîne de format C normale avec l'extension de% @ (qui imprime tout objet NSObject en interrogeant sa méthode -description, pas seulement NSStrings).
Vous pouvez voir un aperçu dans printf manpage
Il s'agit d'une chaîne de format C normale, à l'exception du spécificateur de conversion (evil)% n. Cela ne fonctionne pas dans les chaînes de format Objective-C. –
En outre, il y a une vue d'ensemble très agréable, ainsi que quelques trucs et astuces, dans le plus récent "vendredi Q & A" l'affichage sur le blog NSBlog Mike Ash:
http://www.mikeash.com/?page=pyblog/friday-qa-2009-07-17-format-strings-tips-and-tricks.html
Voici un petit aperçu de "programmation en Objective-C 2.0"
alt text http://img361.imageshack.us/img361/1438/picture1rze.png
"% @" n'est valide pour aucun objet Objective-C, seuls les objets répondant à "description". Si je devais créer mon propre objet dérivant de Object (déclaré dans "objc/Object.h"), il ne sera pas nécessairement compatible avec "% @". – dreamlax
Ceci est vrai, même si c'est ce que définit la documentation 'NSString Format Specifiers'. Même ajouter 'description' n'est pas suffisant si vous construisez votre propre classe racine. – johne