Question

Je déclare une variable dans le fichier d'en-tête et la synthétise dans l'implémentation. Lorsque la vue se charge (ViewDidLoad), je lis un fichier plist et remplit la variable avec une valeur. Avec mon NSLog, je vois que la variable contient la valeur. Cependant, après le chargement de la vue, une interaction avec l'utilisateur se fait via un bouton qui exécute une méthode. Dans cette méthode, je vérifie à nouveau la valeur et elle n’est pas valide. Pourquoi la variable ne conserve-t-elle pas sa valeur après le chargement initial?

programme.h

....
NSString * user_title;
...
@property (nonatomic, retain) NSString *user_title;

programme.m

@synthesize user_title;

-(void)viewDidLoad{

    NSString *filePath = [self dataFilePath];
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath])
{
    NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath];
    user_title = [array objectAtIndex:0];
    [array release];
}
    ....


-(IBAction)user_touch_screen:(id)sender
 {
    user_label.text = user_title;  //user_title has an invaliud value at this point
   ....
Était-ce utile?

La solution

user_title = [tableau objectAtIndex: 0] ne conserve pas la variable.

Utilisez ceci à la place:

self.user_title = [array objectAtIndex:0];

Cela utilisera le setter que vous avez synthétisé et conservera la valeur.

Autres conseils

Vous devez conserver la valeur que vous obtenez du tableau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top