2009-08-22 10 views
1

J'ai créé une nouvelle classe et je veux déclarer un NSDictionary contenant une table de valeurs afin qu'elle soit disponible dans le reste de mon application.erreur: l'élément initializer n'est pas constant

Je l'ai fait de cette façon comme une propriété de la classe (modifiée):

NSDictionary *ell = [NSDictionary dictionaryWithObjectsAndKeys: 
    [[JFEllipsoid alloc] initWithRadius:6377563.396 withInvF:299.3249646], @"key1",       
    [[JFEllipsoid alloc] initWithRadius:6377340.189 withInvF:299.3249646], @"key2", 
nil}; 

Quand je compile i obtenir cette erreur:

error: initializer element is not constant 

Comment/Où puis-je déclarer ce tableau de données de sorte qu'il est disponible quand je l'instance de cette classe?

Répondre

0

Voir cette question:

Pour faire une longue histoire courte, vous pouvez déclarer vos données de chaîne comme extern const avant de les utiliser, ou vous pouvez modifier la portée de l'endroit où vous déclarez votre NSDictionary.

+0

Désolé d'avoir autant de choses à faire. Le point est que les objets dans le dictionnaire ne sont pas des chaînes. Ils seraient quelque chose comme ceci: NSDictionary * ell = [NSDictionary dictionaryWithObjectsAndKeys: \t [[JFEllipsoid alloc] initWithRadius: 6.377.563,396 withInvF: 299,3249646], @ "key1", \t \t \t \t \t \t \t \t [[JFEllipsoid alloc] initWithRadius: 6377340.189 avecInvF: 299.3249646], @ "key2", nil}; – Jorge

Questions connexes