Comment déclarer des variables d'instance et des méthodes non visible ou utilisable en dehors de l'instance de classe?

J'ai regardé à travers un tas de posts sur ce sujet. Peut-être que je n'ai pas couru à travers "l'un" et quelqu'un va me pointer dans cette direction. La question est simple et probablement a une réponse simple.

Si vous avez deux ivars, disons, "public_ivar" et "private_ivar", où/comment devez-vous déclarer, de sorte que ce qui est public est public et ce qui est privé n'est pas exposé à tous ceux qui cherchent à l'en-tête de fichier?

Même question dans le cas de "public_method" et "private_method".

J'aime nettoyer les fichiers d'en-tête (dans d'autres langues) que seulement exposer les méthodes et les ivars je veux que quelqu'un d'autre à voir. Vous devriez être en mesure de publier votre fichier d'en-tête et pas dans le danger de quelqu'un accès à quelque chose qu'ils ne sont pas censé le faire. Comment faites-vous cela en objective-C.

Par exemple, disons que j'ai décider que j'ai besoin d'utiliser un ivar pour garder la trace de certaines données, d'un comptoir ou quelque chose comme ça, entre les différentes méthodes de la classe qui ont besoin d'accéder à ces informations. Si ivar est déclaré de manière conventionnelle dans l'en-tête sous @interface de son existence est annoncé publiquement et il est utilisable par n'importe qui de créer une instance de la classe. Le scénario idéal serait que ce ivar ne serait pas visible à l'extérieur de l'implémentation de la classe.

OriginalL'auteur martin's | 2011-04-28