Xcode 如何保存用户注释?

Xcode 如何保存用户注释?,xcode,swift,mkannotation,Xcode,Swift,Mkannotation,嗨,我对swift和一般编码都是新手,所以如果我不理解或问一些愚蠢的问题,请原谅。 我正在尝试保存用户在地图上广告的pin,但我不知道是如何添加的,这是我的代码,但当我关闭应用程序并重新打开时,应用程序会“忘记”pin: } 我尝试在viewdidload中添加此项,但它不起作用,因此我可能出了问题: ` 您计划保存单个批注还是多个批注?我认为您无法使用NSUserDefaults保存id对象(它只支持有限的类型)。您需要另存为NSData或NSDictionary。请参见示例(Objectiv

嗨,我对swift和一般编码都是新手,所以如果我不理解或问一些愚蠢的问题,请原谅。 我正在尝试保存用户在地图上广告的pin,但我不知道是如何添加的,这是我的代码,但当我关闭应用程序并重新打开时,应用程序会“忘记”pin: }

我尝试在viewdidload中添加此项,但它不起作用,因此我可能出了问题: `


您计划保存单个批注还是多个批注?我认为您无法使用NSUserDefaults保存id对象(它只支持有限的类型)。您需要另存为NSData或NSDictionary。请参见示例(Objective-C)。无论如何,viewDidLoad中显示的代码不起作用,因为您给setObject指定了要保存的字符串“newAnnotation”(而不是名为newAnnotation的对象)。对objectForKey的调用没有任何作用,因为结果没有被使用(没有变量被赋值:
让x=…objectForKey(…)
)。谢谢@Anna的回答。我正在尝试添加多个注释,但我不太明白我需要做什么(甚至是将对象更改为NSData或NSDictionary),因为我是一个真正的初学者:(你能告诉我更多吗,或者如果不要求太多,也许是ad示例代码?再次感谢!
func action(gestureRecognizer:UIGestureRecognizer) {

    if (gestureRecognizer.state == UIGestureRecognizerState.Began) {


        var touchPoint = gestureRecognizer.locationInView(self.mapView)

      var newCoordinate: CLLocationCoordinate2D = mapView.convertPoint(touchPoint, toCoordinateFromView: self.mapView)            
        var newAnnotation = MKPointAnnotation()

    newAnnotation.coordinate = newCoordinate

    newAnnotation.title = "new place"

    newAnnotation.subtitle = "subtitle"

    mapView.addAnnotation(newAnnotation)

    }
    NSUserDefaults.standardUserDefaults().setObject("newAnnotation", forKey: "newCoordinate")

    NSUserDefaults.standardUserDefaults().objectForKey("newAnnotation")