2011-01-01 11 views
2

Grundsätzlich versuche ich, einen Untertitel (die Straßenadresse) zu einer Anmerkung zu speichern. Wenn die Anwendung beendet und neu gestartet wird, möchte ich, dass dieser gespeicherte Untertitel im Callout der Annotation angezeigt wird. Was mache ich falsch? Ich kann einfach nicht damit es funktioniert ...Den Untertitel einer gespeicherten Anmerkung mit NSUserDefaults laden, wenn viewDidLoad

storeLocation.m

- (void)setCoordinate:(CLLocationCoordinate2D)coor { 
        ............ 

        NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults]; 
        [userDef setValue:subtitle forKey:@"SavedAddress"]; 
        [userDef synchronize]; 
        NSLog(@"Stored subtitle"); 
       } 

mainViewController.m

-(void)viewDidLoad { 
       NSString *savedAddress = [[NSUserDefaults standardUserDefaults] objectForKey:@"SavedAddress"]; 
    if (savedAddress) { 
    }     
} 

Würde schätzen wirklich etwas Hilfe mit diesem ... Vielen Dank im Voraus !

+0

können Sie angeben, was „nicht funktioniert "? Haben Sie NSLog verwendet, um die Werte auszudrucken und herauszufinden, was die gespeicherten Werte zurückgeben? – sciritai

+0

Kein String wird zurückgegeben, wenn die Anwendung neu gestartet wird. – Krismutt

Antwort

0

versuchen srtingForKey: statt objectForKey:

NSString *savedAddress = [[NSUserDefaults standardUserDefaults] stringForKey:@"SavedAddress"]; 
0

Ich löste es mit einer if-Anweisung in der

-(NSString *)subtitle. 

Damit:

-(NSString *)subtitle{ 

    NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults]; 
    if ([userDef boolForKey:@"SavedAddress"]) { 
     NSString *savedAddress = [[NSUserDefaults standardUserDefaults] stringForKey:@"SavedAddress"]; 
     return savedAddress; 
    } 

    else { 
     return subtitle; 
    } 
}