如何保存注释?

时间:2015-07-15 18:59:03

标签: swift gps annotations mapkit

我有自己的代码,因此每次用户点击按钮时都会在地图上添加注释,但当用户关闭应用时,注释会消失。即使用户关闭应用程序,如何使注释保留在地图上?以下是我的代码:

import UIKit
import CoreLocation
import MapKit

class UpdateCar: UIViewController, CLLocationManagerDelegate {

@IBOutlet weak var mapView: MKMapView!

@IBOutlet weak var lblLocation: UILabel!

var locationManager = CLLocationManager()

var myPosition = CLLocationCoordinate2D()

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    locationManager.delegate = self
    locationManager.requestWhenInUseAuthorization()
    locationManager.startUpdatingLocation()

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

func locationManager(manager: CLLocationManager!, didUpdateToLocation newLocation: CLLocation!, fromLocation oldLocation: CLLocation!) {

    println("Updating Car Location \(newLocation.coordinate.latitude) , \(newLocation.coordinate.longitude) ")

    myPosition = newLocation.coordinate

    locationManager.stopUpdatingLocation()

    lblLocation.text = "\(newLocation.coordinate.latitude) , \(newLocation.coordinate.longitude)"
}

@IBAction func findUserLocationAndDropPin(sender: UIButton) {
    var userLocationCoordinates = CLLocationCoordinate2DMake(locationManager.location.coordinate.latitude, locationManager.location.coordinate.longitude)
    var pinForUserLocation = MKPointAnnotation()
    pinForUserLocation.coordinate = userLocationCoordinates
    mapView.addAnnotation(pinForUserLocation)
    mapView.showAnnotations([pinForUserLocation], animated: true)
    }

}

1 个答案:

答案 0 :(得分:1)

您必须将其保存在持久存储中。

几个选项:

  • CoreData,保存数据的本地方式,推荐,不太容易
  • NSUserDefaults,通常被认为是小东西,也是原生的,不推荐,虽然很容易
  • 另一个用于管理持久性商店的API,如Realm(类似于CoreData,更容易但不是原生的)