Existe-t-il une différence de déclaration d'objets en Objective-C entre (1) et (2), en plus du style et des préférences personnelles?Déclaration d'objet dans Objective-C
(1) Déclaration, allocation, initialisation sur une seule ligne.
Student *myStudent = [[Student alloc] init];
(2) déclaration multi-ligne, la répartition, l'initialisation.
Student *myStudent;
myStudent = [Student alloc];
myStudent = [myStudent init];
qu'essayez-vous de faire ici? 'myStr',' str1' et 'str2' pointeront tous vers le même objet chaîne, c'est-à-dire que seule la dernière initialisation est pertinente – Christoph
Je suis d'accord avec christoph, non seulement cela, mais si vous avez modifié la structure interne de str1 ne sont pas remplacés par le format initWith: entre init et initWithFormat: ces changements seront toujours présents. – Elfred
Non, vous ne pouvez pas faire cela. Je veux dire, vous pouvez l'écrire, mais c'est totalement faux **. Aussi, si 'myStr',' str1' et 'str2' pointent vers la même chaîne dépend de l'implémentation. Dans la plupart des implémentations, ils seront différents objets lorsque vous le faites avec NSString ou tout autre cluster de classe, mais ce sera le même objet pour les autres classes. – Chuck