2013-08-31 4 views
1

Je sais que cette question a été posée un milliard de fois, mais ma question particulière n'a pas reçu de réponse. Donc désolé de la répétitivité.Utilisation et accès Variables globales/externes dans l'objectif C

donc je sais comment déclarer et définir des variables externat (me corriger si je me trompe):

dans le fichier foo.h:

extern NSString *foo; 

dans le fichier foo.m:

NSString *foo = @"fooey"; 

Mais dites ensuite que je veux accéder/modifier la variable dans le fichier hoo.m. Comment ferais-je cela?

Répondre

1

Dans .h

@interface SOViewController : UIViewController{ 
    NSString * variable; 
} 

dans .m vous pouvez le configurer chaque fois.

Par exemple, viewDidLoad.

Vous pouvez également déclarer dans le fichier .m en mettant la déclaration

@interface SOViewController(){ 
    NSString * variable; 
} 
    // @property (strong, nonatomic) NSString * myString; might be appropriate here instead 
@end 

Avant la @implementation.

Idéalement, comme il s'agit d'une programmation orientée objet, la meilleure pratique consiste à faire de la chaîne une propriété de la classe.

Si vous êtes vraiment mis sur le mot-clé ici est un extern après stackoverflow sur la façon de l'utiliser Objective C - How to use extern variables?

EDIT

La question se résume à la façon de passer des variables autour. Vous pouvez regarder cet article How to pass prepareForSegue: an object pour voir un exemple de la façon de le faire avec Seguing.

+0

Oui, c'est ainsi que vous le définissez/le déclarez. Mais comment puis-je y accéder dans une classe différente de foo.h/m? – DonyorM

+0

Ah, je vois. Vous auriez besoin de le transmettre à cette classe. – AdamG

+0

Déclarez-le en tant que variable externe (.h), puis dans prepareForSegue ou lorsque vous déclarez le nouveau viewController, définissez une propriété dans ce viewController où vous en avez besoin. – AdamG