ÊTRE CONSCIENT DU FAIT QUE CE POST EST VIEUX !
Ce poste est à partir de la décennie précédente.
Assurez-vous de lire l'importante note de bas de page vers le bas ci-dessous, merci!!
Il est vraiment difficile de comprendre tout cela, lorsque vous êtes juste de commencer.
Voici quelques SIMPLES, PRATIQUES et règles de base POUR les DÉBUTANTS.
Pour répéter, ce post est POUR les DÉBUTANTS.
Le but ici est de vous permettre de rapidement passer de la ligne de départ, pour être en mesure d'utiliser en toute confiance au système dans la plupart des situations.
Plus tard, vous pouvez en apprendre beaucoup sur le fonctionnement interne de ces questions.
(1) Ne jamais dire name=@"hello"
. Toujours dire self.name=@"hello"
. Faire un projet de recherche à l'échelle pour name
et de vous assurer de toujours dire self.name
et pas name
, lorsque vous définissez ou de le modifier.
(2) Vous savez tous que de provoquer la colère des choses à propos de la gestion de la mémoire, de l'initialisation, de la libération et ainsi de suite. Si vous utilisez l'auto truc, il prend soin de tout cela pour vous. Cool hein?
(3) L'auto thingy est particulièrement utile parce que vous pouvez facilement "" changer de chaîne (ou quoi que ce soit) comme vous allez le long. Donc, il est tout à fait OK pour ce faire,
self.name=@"aa";
self.name=@"bb";
self.name=@"cc";
alors que (en un mot) , vous ne pouvez jamais, jamais, pour une raison quelconque, cela...
name=@"aa";
name=@"bb";
name=@"cc";
( * ) Quant à votre question littérale, "s'il vous plaît expliquer la différence entre name = @"hello"
et self.name = @"hello"?"
C'est facile à faire.
Le premier est juste la définition d'une variable. Vous savez, exactement comme "x=42"
dans l'ancien des jours où la vie était simple et nous avons été de 13 ans.
Le second est complètement différent, plus précisément c'est d'appeler un complexe de routine (connu comme le "setter") pour en faire un ensemble beaucoup de incroyable et étonnante choses pour vous.
Donc, c'est la traduction littérale de réponse à votre question. Le premier juste définit la variable (et n'oubliez pas, il y a tout un tas de pointeurs et d'autres trucs bizarres impliqués, et en règle générale, vous certainement ne peut pas juste mettre des pointeurs de bon gré mal gré comme ça). Le second appelle effectivement un gros complexe de routine et donc n'a tout un tas de choses pour vous.
Encore une fois, la deuxième est exactement comme dire...
[name bigComplicatedRoutineHere:@"hello"];
...il est très utile de se rappeler que la syntaxe self. ...
est littéralement l'appel d'une routine.
En effet, certains penseurs sur le sujet pensé que c'était une idée stupide quand ils ont introduit cette self.X
de la syntaxe pour signifier [X complicatedThingHere]
. Il introudces beaucoup de confusion, et tous les débutants se demande exactement ce que vous demandez.
Personnellement, il m'a fallu plus de neuf ans pour obtenir ce clair dans ma tête. :-) Encore une fois, je tiens à souligner que vous devez vous rappeler que quand vous dites self.x
, en fait, vous êtes réellement l'appel d'une routine.
À répéter: "l'auto-point" de la syntaxe en fait des appels de routine. (En effet, je crois que l'une des préprocesseurs simplement l'étend à l' [x amazingStuffHere]
. )
J'ai essayé de répondre d'une manière qui va vous tenir en haleine et vous permettre d'avancer et d'utiliser plus de fonctionnalités, tandis que vous apprenez à propos de la gestion de la mémoire, des propriétés, et ainsi de suite. Si vous êtes plus avancé que ce post, juste l'ignorer.
Veuillez noter que ce poste est destiné à des conseils pour les débutants afin de leur permettre de continuer et de ne pas obtenir furieux. Espérons que cela aide!
2014 mise à jour! Remarque importante sur l'ARC pour les débutants ...
Remarque, ce post est de cinq ans maintenant! Il a été lu par des milliers de débutants et j'ai reçu beaucoup d'e-mail, etc avec suivi des questions etc. Veuillez noter que, aujourd'hui, dans la nouvelle "l'ARC du monde". Dans une certaine mesure: si vous êtes un débutant: vous devriez assez bien la seule utilisation!! les propriétés. c'est à dire, utiliser "l'auto.que ce soit" à tout moment, partout. Dans tous les cas, il faut simplement être conscient que les informations de ce post est "en grande partie" historique et devient de plus en plus chaque jour. Bien sûr, il va sans dire qu'une fois que vous êtes un expert, vous aurez besoin de et de comprendre tous les détails subtils de tout cela. Espérons que cela aide quelqu'un.