Raison d'utiliser ivars vs propriétés dans l'objectif c

J'ai été incapable de trouver toutes les informations sur ce sujet et la plupart de ce que j'en sais il est arrivé complètement par accident (et de quelques heures à essayer de comprendre pourquoi mon code ne fonctionnait pas). Alors que l'apprentissage d'objective-c la plupart des tutos que j'ai trouvé en faire des variables et des propriétés du même nom. Je ne comprends pas la signification, car il semble que la propriété fait tout le travail et la variable type de siège. Par exemple:

Test.h

@interface Test : NSObject {
    int _timesPlayed, _highscore;
}

@property int timesPlayed, highscore;

//Methods and stuff

@end

Test.m

@implementation Test

  @synthesize timesPlayed = _timesPlayed;
  @synthesize highscore   = _highscore;

  //methods and stuff

@end

Ce que je sais

1) Bon alors aujourd'hui j'ai découvert (après des heures de confusion) que n'importe comment beaucoup de changement-vous faire pour les propriétés highscore = 5091231 cela ne va pas changer quoi que ce soit quand vous essayez d'appeler [test score] comme il sera toujours retourner la valeur de _highscore qui (je pense) est le ivar qui a été mis en test.h. Donc tout changement de variables dans l'essai.m doit être en train de changer _highscore et pas les meilleurs scores. (Corrigez-moi si je me trompe s'il vous plaît)

2) Si je comprends bien (je n'ai probablement pas) le ivars ensemble dans l'essai.h représentent la mémoire réelle où, comme le @propriétés sont juste des moyens d'accéder à cette mémoire. Donc en dehors de la mise en œuvre, je ne peux pas accéder à _highscore sans passer par la propriété.

Ce que je ne comprends pas

Fondamentalement, ce que je ne comprends pas au sujet de cette situation est de savoir si ou non je besoin pour utiliser le ivars, ou si je peux utiliser @bien et @synthétiser. Il semble que le ivars sont juste extra code qui ne sont pas vraiment faire quelque chose, mais me confondre. Certains des plus récents tutoriaux que j'ai vu ne semblent pas utiliser ivars mais certains le font. Alors est-ce juste un codage de préférence chose ou est-il réellement important? J'ai essayé de chercher par le biais de la Documentation d'Apple mais j'ai plutôt perdu là-bas et ne semblent jamais trouver ce que je cherche. Toute orientation sera grandement apprécié.

source d'informationauteur CaldwellYSR