Ich habe eine Anwendung, die viele MKOverlayViews enthält. Jedes Mal, wenn eine zur Karte hinzugefügt wird, wird sie auch zu einem NSArray hinzugefügt. Wenn der Benutzer aufhören möchte, Overlays hinzuzufügen, möchte ich, dass er sie speichern kann und später darauf zugreifen kann. Wie kann ich ein Array von MKOverlayViews in einer plist speichern und sie später wieder in eine mapView laden? Ist dies möglich?
Ich bin Der Versuch diesen Code zu verwenden, um die MKPolylineViews aus dem Array zu nehmen und die entsprechenden MKPolylines zur Karte hinzuzufügen, aber es stürzt bei der Zeile '[mapView addOverlay....' ab.
Array in plist schreiben:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if(overlays)
{
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:overlays];
[defaults setObject:data forKey:@"theKey"];
[defaults synchronize];
}
Lesen von Daten aus plist:
NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"theKey"];
NSArray *arr = [NSKeyedUnarchiver unarchiveObjectWithData:data];
for(MKPolylineView* a in arr)
[mapView addOverlay:a.polyline];