Comment dois-je déclarer un tableau comme une constante dans l'Objective-c?

Le code suivant me donne des erreurs:

// constants.h
extern NSArray const *testArray;
// constants.m
NSArray const *testArray = [NSArray arrayWithObjects:  @"foo", @"bar", nil];

L'erreur que j'obtiens est

initializer element is not constant

Ou si je retire le pointeur de l'indicateur (*) j'obtiens:

statically allocated instance of Objective-C class 'NSArray'

  • Voir ce DONC, la question
  • Par "constantes" que voulez-vous dire? Immuable contenu de l'objet, ou l'immuable pointeur?
  • Mes critères sont les suivants: 1) Les valeurs ne peuvent pas être accidentellement changé (Donc je suppose que NSArray est bon), 2) disponible n'importe où dans le programme (je suis notamment constants.h dans mon .pch fichier) , 3) Seulement déclaré une fois
InformationsquelleAutor Andrew | 2010-03-12