Пример #1
0
        public override void DidEnterBackground(UIApplication application)
        {
            var       subViews = mapViewController.View.Subviews;
            MKMapView mapView  = subViews[0] as MKMapView;

            Console.WriteLine("mapView: {0}", mapView);
            var            tempArray   = mapView.Annotations;
            NSMutableArray annotations = new NSMutableArray();

            Console.WriteLine("tempArray: {0}", tempArray.ToString());
            for (int i = 0; i < tempArray.Length; i++)
            {
                if (tempArray[i].GetType() == typeof(MKUserLocation))
                {
                    Console.WriteLine("MKUserLocation: {0}", tempArray[i]);
                }
                else
                {
                    Console.WriteLine("MKMapPoint added: {0}", tempArray[i]);
                    annotations.Add(tempArray[i]);
                }
            }
            var    documentDirectories = NSSearchPath.GetDirectories(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomain.User, true);
            string documentDirectory   = documentDirectories[0];
            string path = Path.Combine(documentDirectory, "annotations.archive");

            Console.WriteLine("Path: {0}", path);
            bool success = NSKeyedArchiver.ArchiveRootObjectToFile(annotations, path);

            if (success)
            {
                Console.WriteLine("Saved Annotations {0}", annotations.ToString());
            }
        }