2009-11-28 2 views
0

필자가 작성한 응용 프로그램이 종료되면 iphone에서 현재 위치를 '디스크'에 저장할 필요가 있습니다. 그런 다음 앱이 다시 시작되면이 정보를 복원하려고합니다. 그러나 CLLocation 좌표 특성은 읽기 전용입니다.CoreLocation을 유지합니다

프로그램 호출간에이 정보를 저장하고 CLLocation 객체에 다시 적용하려면 어떻게해야합니까?

답변

3

NSDefaults를 사용하여 저장할 수 있습니다.

#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]; 

PS 비슷해 그래서 위의 코드에 구문 오류가있을 수 있습니다 손에 맥이없는하지만 당신은 내가 removeObjectForKey 작동한다고 가정 아이디어 :

+0

를 얻을 수 (double이 엄격하게 객체가 아니더라도!) – deanWombourne

+0

완벽 함, 나는 그것을 또한 발견했다. (RTFM이 없다면 유감이다.) – KevinDTimm

+0

NSUserDefaults를 사용하여 키에 대한 CLLocation 객체를 설정하고 NSString 상수를 사용한다. –

관련 문제