У меня есть приложение, которое включает в себя множество MKOverlayViews. Каждый раз, когда кто-то добавляется на карту, он также добавляется в NSArray. Когда пользователь хочет прекратить добавление наложений, я бы хотел, чтобы они могли его сохранить и получить к ним доступ позже. Как я могу сохранить массив MKOverlayViews в plist, а затем перезагрузить их обратно в mapView? Возможно ли это?
Я пытаюсь использовать этот код для извлечения MKPolylineViews из массива и добавления соответствующих MKPolylines на карту, но он падает в строке '[mapView addOverlay ....'.
Запись массива в plist:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if(overlays)
{
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:overlays];
[defaults setObject:data forKey:@"theKey"];
[defaults synchronize];
}
Чтение данных из списка:
NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"theKey"];
NSArray *arr = [NSKeyedUnarchiver unarchiveObjectWithData:data];
for(MKPolylineView* a in arr)
[mapView addOverlay:a.polyline];