2010-06-05 11 views
0

J'ai une classe appelée 'Constantes' dans laquelle je stocke une variable String. Cette classe contient quelques variables globales utilisées dans mon application.Comment appeler une variable d'une autre classe?

Je veux pouvoir référencer cette classe et appeler la variable (appelée profileId) dans d'autres vues de mon application. J'ai regardé autour de moi et j'ai trouvé quelques exemples, mais je ne suis pas sûr de savoir comment faire. À l'heure actuelle ma configuration est:

Constants.h

@interface Constants : UIViewController { 
NSString *profileId; 
} 

@property (nonatomic, retain) NSString *profileId; 

@end 

Constants.m

#import "Constants.h" 

@implementation Constants 

@synthesize profileId; 

- (void)dealloc { 
[profileId release]; 

[super dealloc]; 
} 

J'essaie d'appeler la ProfileId variable dans une nouvelle vue par cette voie:

fichier NewView.h

@class Constants; 

fichier NewView.m

NSLog(@"ProfileId is:", [myConstants profileId]); 

Y at-il quelque chose que je suis absent? Il est à venir nulle, même si je stocke correctement une valeur dans une autre fonction via cette façon:

Constants *Constant; 
    Constant = [[Constants alloc] init]; 
    Constant.profileId = userId; 

Répondre

1

Il vous manque le% @ pour le paramètre:

NSLog(@"ProfileId is: %@", [myConstants profileId]);

Comme une note de côté, les noms de variables doivent commencer par une lettre minuscule (constante, pas constante). Vous pouvez également utiliser la syntaxe à points avec les propriétés ici: myConstants.profileId

Si cela ne fonctionne pas, veuillez poster le code que vous utilisez pour affecter votre valeur (méthode complète).

+0

J'ai essayé votre code, et il est la valeur null sort ... Pour l'attribution de ma valeur, je fais ceci: Dans mon fichier .h: #import « Constants.h » Les Constantes Les ; Dans mon fichier .m: NSString * responseString = [request responseString]; \t NSString * userId = [Chaîne chaîne_réponsesEntre: @ "" et: ""]; \t NSLog (@ "ID utilisateur est:"); \t NSLog (@ "% @", ID utilisateur); (l'ID utilisateur affiche une valeur correcte). Constantes * Constante; \t \t Constante = [[Constants alloc] init]; \t \t Constant.profileId = ID utilisateur; \t \t NSLog (@ "Constante profileId est:"); \t \t NSLog (@ "% @", Constant.profileId); (Constant.profileId affiche la valeur correcte). – squeezemylime

+1

J'ai résolu le problème via ce code: http://iphone.galloway.me.uk/iphone-sdktutorials/singleton-classes/ – squeezemylime

+0

Vous devriez essayer de trouver et de comprendre votre erreur, car vous referez probablement des choses similaires et encore. Mais sans le code (methhod complet) nous ne pouvons pas aider. Vous pouvez toujours modifier votre question. – Eiko

Questions connexes