2009-11-28 4 views
0

J'ai besoin de stocker l'emplacement actuel sur 'disk' sur l'iphone si l'application que j'écris est terminée. Ensuite, lorsque l'application redémarre, je souhaite restaurer cette information. Cependant, la propriété de coordonnées CLLocation est en lecture seule.CoreLocation persistante

Que puis-je faire pour enregistrer cette information entre les appels de programme (et la réappliquer à un objet CLLocation)?

Répondre

3

Vous pouvez utiliser NSDefaults pour le stocker. Quelque chose comme

#define kLocationLat @"LOCATION_LAT" 
#define kLocationLng @"LOCATION_LNG" 

// Store the location 
[[NSUserDefaults standardUserDefaults] setDouble:location.coordinate.lat forKey:kLocationLat]; 
[[NSUserDefaults standardUserDefaults] setDouble:location.coordinate.lng forKey:kLocationLng]; 

// Retrieve the location 
CLLocationDegrees lat = [[NSUserDefaults standardUserDefaults] doubleForKey:kLocationLat]; 
CLLocationDegrees lng = [[NSUserDefaults standardUserDefaults] doubleForKey:kLocationLng]; 
CLLocation *location = [[CLLocation alloc] initWithLatitude:lat longitude:lng]; 

Sam

PS Je n'ai pas un Mac à la main donc il pourrait y avoir des erreurs de syntaxe dans le code ci-dessus, mais vous voyez l'idée :)

+0

Je suppose que removeObjectForKey fonctionnerait (même si un double n'est pas strictement un objet!) – deanWombourne

+0

parfait, je l'avais trouvé aussi (désolé de ne pas RTFM) – KevinDTimm

+0

Définir l'objet CLLocation pour une clé en utilisant NSUserDefaults et utiliser les constantes NSString. –

Questions connexes