Recherche documentation
Bonjour,
Bonne nouvelle ! J'avance bien dans mon apprentissage d'Objective-C mais j'arrive à un point où je suis fortement gêné et tout ce que j'ai pu lire n'a pas répondu à mon problème. Je m'explique :
Je ne parvient pas à trouver l'endroit où je peux trouver de l'information sur les fonctions/méthodes des bibliothèques. Au bout d'un moment, suivre des recettes toutes faites ne suffit plus.
Exemple en C mais même chose en Objective-C (code trouvé dans un livre d'Aaron Hillegass) :
long secondesDepuis1970 = time(NULL);
struct tm maintenant;
localtime_r(&secondesDepuis1970, &maintenant);
• Est-ce que time() est prévu pour renvoyer un long ?
Bon ça j'ai trouvé grace au fichier time.h qui donne le prototype :
time_t time(time_t *);
et le fichier _time_t.h qui donne :
typedef __darwin_time_t time_t;
et enfin le fichier _types.h qui nous donne :
typedef long __darwin_time_t;
mais...
• pourquoi on lui passe NULL à time() ?
• que fait cette fonction au juste ?
• que fait localtime_r() ? OK ça c'est expliqué brièvement dans le livre, mais
• le rôle des arguments ?
Le proto
struct tm *localtime_r(const time_t * __restrict, struct tm * __restrict);
ne suffit pas pour comprendre ! Si ?
Et de manière générale on a aussi l'inverse : si je veux trouver une fonction qui fait une certaine chose, où cherche-t-on ? On fouille dans les centaines de documents des bibliothèques pour voir si ça existe ?
Bref vous l'aurez compris je suis un peu perdu. Une âme charitable pourrait me fournir quelques éclaircissements ?
Réponses
La doc de toutes les fonctions C (time et localtime_r en particulier) se trouve dans le man Unix.
Il suffit sous Terminal de taper man time pour avoir la doc !
Bon, d'accord, c'est un peu rustre comme doc. Et il faut comprendre la logique de la doc Unix, organisée en sections, beaucoup de liens entre les pages de doc, ...
En complément :
- man man pour avoir la doc de man
- apropos bidule pour avoir la liste de toutes les pages de doc qui traitent du sujet bidule
- apropos . pour avoir la liste de toutes les pages de doc
Personnellement j'utilise Dash comme outil de recherche dans "toutes les docs du monde qui existent", y compris bibliothèques C et frameworks Cocoa et Cocoa Touch, mais aussi "tout" le reste.
Pour connaà®tre toutes les possibilités il n'y a pas de secret : il faut prendre de temps en temps la doc de référence d'un sujet donné (classe, framework, bibliothèque C, ...) et lire en diagonale pour se faire une idée des possibilités.
Un peu comme mon grand père qui tous les jours lisait une page du dictionnaire ...
Un peu rustre : c'est le terme exact pour les man pages. J'ajouterais que la navigation est un calvaire. Mais bon, si c'est utile...
C'est intéressant de savoir comment procèdent les devs aguéris. Et tes indications sont précieuses.
Toute la nuit (eh oui ! ) j'ai cherché et j'ai remarqué le volet Quick help dans Xcode, avec renvoi dans la doc. ça m'a l'air d'être un bon point de départ.
Oui je galère, en face de mon MBP qui ne compatit même pas ! Merci de ton aide.
La navigation dans le man est rustre aussi, y'a pas le contenu qui a cette jolie qualité
Il faut simplement savoir que le navigateur par défaut est la commande less.
Et bien évidemment pour connaà®tre toutes les commandes less il faut faire man less.
C'est très utile d'apprendre à travailler en ligne de commande. Quand on a l'habitude on travaille bien plus vite avec les mains constamment sur le clavier plutôt que de permuter sans cesse entre clavier et souris/trackpad.
En ce qui me concerne je n'ai aucun mérite : il n'existait que la ligne de commande à mon époque.
Re,
Avec Dash j'ai tout ce qu'il faut en fait. C'est merveilleux. Beaucoup de soucis en moins... j'ai bien fait de m'adresser ici.
Merci encore jpimbert.
Par contre pour les fonctions C (qui ne viennent du coup pas de Cocoa mais des librairies C standard) effectivement la source officielle c'est les man pages. Dash est une très bonne GUI pour ceux qui n'aiment pas le terminal pour lire les man pages. Ces man pages sont aussi trouvables sur internet avec une petite recherche Google (plus facile à naviguer que dans le terminal pour ceux qui ne sont pas habitués à less et qui ne veulent pas installer Dash)
La plupart des fonctions de date et temps sont disponible en Objective-C - regardes les docs sur NSDate, NSCalendar, NSLocale et NSTimeZone. Et, pour les conversions de et vers NSString, NSDateFormatter.
ça paraà®t évident aux gens qui sont là , mais en formation je vois bien que la première difficulté est de savoir où se trouve la doc.
Et sinon, je pense comme Joanna, qu'il vaut mieux utiliser les classes dédiées aux dates, NSDate et compagnie.
C'est exactement ça qui me manquait.
A la décharge de Lightman18, quand j'ai commencé avec objective-C en 2005, J'ai eu le même problème de recherche des documentations. Un certain Bru m'avait bien aidé à comprendre comment chercher les informations.
Mais qu'est devenu Bru ?
Il y a aussi beaucoup de docs disponible par le Developer Center
Par ex : https://developer.apple.com/library/ios/navigation/ et https://developer.apple.com/library/mac/navigation/
Ou, à plus haut : https://developer.apple.com/resources/