     //MARK: gc
     deinit
     {
+        clearUserAnnotation()
         mapView.removeAnnotations(mapView.annotations)
+        mapTap.removeObserver(self, forKeyPath: "state", context: &MAP_TAP_CONTEXT)
     }
 }

class LocationDetailTableViewController:UIViewController, UITableViewDataSource, UITableViewDelegate, MKMapViewDelegate
{
    var location:LocationInfo!
    
    @IBOutlet weak var mapView: MKMapView!
    @IBOutlet weak var tableView: UITableView!
    
    private var marsloc:CLLocation!
    
    override func viewDidLoad()
    {

                }
                
                let placemark = list!.first!
                annotation.subtitle = placemark.name
            }
            else
            {
                let alert = UIAlertController(title: "Geocode: \(error!.code)", message: error?.description, preferredStyle: UIAlertControllerStyle.ActionSheet)
                alert.addAction(UIAlertAction(title: "I've got it!", style: UIAlertActionStyle.Cancel, handler: nil))
                self.presentViewController(alert, animated: true, completion: nil)
            }
        }
