2009-08-08 5 views
0

J'ai une NSString déclarée dans mon AppDelegate. J'essaie de lire/écrire cette chaîne depuis ma classe View mais cela me donne une erreur sur la méthode getter/setter non trouvée.Setter et getter pour NSString déclarés dans AppDelegate

Voilà comment je suis d'y accéder:

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; 

appDelegate.myString = @"test"; 
+0

Comment proclamons myString vous? ... et utilisez-vous @synthesize ou implémentez-vous directement la paire getter/setter? – bbum

Répondre

4

Comment vous avez la propriété myString définie?

Pour y accéder comme vous le dites, vous avez besoin de 3 choses:

Dans l'interface, une variable définie et un @property, et dans la mise en œuvre d'un @synthetize.

Quelque chose comme:

// MyAppDelegate.h 
@interface MyAppDelegate 

NSString *myString; 

@end 

@property NSString *myString; 


// MyAppDelegate.m 
@implementation MyAppDelegate 

@synthetize myString; 

@end 
+0

merci! Il me manquait @synthesize et @property – user140736

+0

Techniquement, vous n'avez pas besoin d'une propriété ou d'une syntehsize - vous avez simplement besoin d'un setter et d'un getter, à savoir les méthodes - (NSString *) myString et - (void) setMyString: (NSString *) inString. @property déclare simplement ces méthodes pour vous, et @synthesize écrit simplement le code pour vous, mais vous pouvez utiliser la notation par points pour y accéder sans réellement utiliser @property ou @synthesize. –

Questions connexes