Est-il nécessaire de définir des pointeurs nuls dans Objective-C après la publication?

StackOverflow https://stackoverflow.com/questions/803531

  •  03-07-2019
  •  | 
  •  

Question

Quelque chose ne va pas avec quelque chose comme

  

NSString * string = [[NSString alloc] init];
   ...
   [libération de chaîne];

ou existe-t-il une valeur (autre que la meilleure pratique) en ajoutant également

  

string = nil;

?

Était-ce utile?

La solution

Pas nécessaire, mais bonne pratique. Si vous deviez y faire référence par inadvertance après votre publication, de mauvaises choses pourraient arriver, mais dans l’objectif C, il n’ya pas de mal à faire référence à un zéro.

Autres conseils

Définir une variable d'instance sur nil est plus utile dans une application à plusieurs threads que dans une application à un seul thread, car avec plusieurs threads, vous ne pouvez pas toujours garantir qu'une variable d'instance sera lue uniquement avant il est publié.

En général, je ne me soucie pas des applications à un seul thread, à moins d'une autre raison convaincante.

Objective-C est vraiment identique à C avec un pré-processeur sophistiqué.

La définition d'un pointeur sur nil dans Objective-C n'a aucun effet sur ce qui était autrefois pointé par ce pointeur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top