Question

Je ne suis toujours pas sûr d’avoir totalement compris comment ce cas particulier devrait aboutir. Donc, si je veux déclarer un tableau de NSStrings qui ne changera pas, est-ce correct?

static NSString * const strings[] = {@"String 1", @"String 2", ...};

Le statique est-il nécessaire? (que fait-il?) Me manque-t-il un extra const quelque part? Il y a trop d'endroits où aller! Gah! Est-ce que je me trompe ou est-ce que je suis juste paranoïaque?

Était-ce utile?

Autres conseils

Vous lisez les déclarations en C de l'intérieur, en commençant par les opérateurs fortement liés comme [], puis en les déplaçant vers la gauche. Donc, vous avez: des chaînes, un tableau, une constante, des pointeurs, vers NSString, qui est statique.

C'est parfaitement raisonnable, mais pas ce que vous avez dit que vous vouliez.

Pour créer des pointeurs sur des chaînes constantes, vous aurez besoin du const situé de l'autre côté du * . Vous aurez ainsi des chaînes, un tableau, des pointeurs à constants. , NSString, qui sont statiques.

Vous pouvez mettre const aux deux endroits, si vous le souhaitez.

Utiliser la classe de stockage static revient un peu à définir une variable de classe. Identique à static en C99, une étendue lexicale au niveau du module.

scroll top