Frage

Ich erkläre eine Variable in der Header-Datei und synthetisieren sie in der Umsetzung. Wenn die Ansicht Lasten (ViewDidLoad) ich eine plist-Datei lesen bevölkert eine die Variable mit einem Wert. Mit meiner NSLog Ich sehe, dass die Variable den Wert enthält. Nachdem jedoch die Ansicht Lasten, ich habe einige Interaktion mit dem Benutzer über eine Taste die ein Verfahren ausführt. Innerhalb dieser Methode prüfe ich den Wert wieder und es ist ungültig. Warum wird die Variable nicht hält ihren Wert nach der ersten Belastung?

program.h

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

program.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
   ....
War es hilfreich?

Lösung

user_title = [array objectAtIndex:0] behält nicht die Variable.

Verwenden Sie stattdessen:

self.user_title = [array objectAtIndex:0];

Das wird die Setter verwenden, die Sie synthetisiert und den Wert beibehalten.

Andere Tipps

Sie müssen den Wert, den Sie aus dem Array erhalten halten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top