11
votes

Dans Cacao, comment est défini le type d'identification?

Cette question est hors de curiosité pure. Comment le cacao définit-il le type d'identification? Est-ce juste un typlef pour un vide *? En outre, si vous savez quel fichier d'en-tête il est défini dans, je serais intéressé à jeter un coup d'œil.


0 commentaires

5 Réponses :


25
votes

Maintenez la touche de commande enfoncée et double-cliquez sur tout terme en surbrillance pour passer à sa définition. xxx


4 commentaires

+1 bonne réponse. J'espère travailler davantage avec Xcode l'année prochaine et le raccourci clavier sera très utile pour savoir.


+1 sur même ma propre réponse. Je le connaissais déjà, mais c'est trop utile.


Opt-Double-clic fera apparaître la documentation, le cas échéant, aussi!


Touches chaudes pour passer à la définition CMD + Ctrl + j.



7
votes

in objc.h xxx

Pour savoir par vous-même, en Xcode, cliquez avec le bouton droit de la souris sur ID - ou tout autre type - et sélectionnez Aller à la définition . Il est intéressant de noter les similitudes avec d'autres systèmes d'objet basés sur C / C ++; Un pointeur d'objet - un identifiant - pointe vers une structure qui commence par un point à des informations de classe partagées. I De nombreuses implémentations C ++, ce qui seraient la table de fonction virtuelle, comme ce serait avec le com. Au cacao, les détails de objc_class ne nous sont pas révélés dans le fichier d'en-tête.


0 commentaires

2
votes

Le type ID est généralement déclaré comme: xxx

ceci est critique pour objectif-c ++ où le type fait partie de Nom de la fonction manglée.

Vous pouvez jeter un coup d'oeil à /usr/include/objc/objc.hech


0 commentaires

8
votes

Il est appelé dans /usr/include/objc/objc.h (sur léopard) comme suit: xxx

ce qui signifie qu'il n'est pas NOID * du tout, mais plutôt un pointeur sur une struct contenant un seul membre, pointant sur la définition de la classe. Intéressant en effet.

Je me souviens quand je venais d'entrer dans C et que j'apprendais que l'objectif - C a été initialement mis en œuvre comme une couche de préprocesseur au-dessus de C. Ce n'est plus tout à fait que ça.

La meilleure lecture sur le sujet que j'ai trouvé:

http://developer.apple.com/mac/library/documentation/cocoa/conceptual/objectivec/introduction/introobject/introduction/introobject-html


0 commentaires

0
votes

Vous pouvez faire référence à la doconique ici: http: // opensource .apple.com / Source / Objc4 / Objc4-437 / Runtime / Objc.h J'espère que cela fera une faveur pour vous


0 commentaires