gpt4 book ai didi

ios - NSUserDefaults 并使用 setobject 方法在 Swift 中存储 CLLocationCooperative2D 错误

转载 作者:行者123 更新时间:2023-11-30 14:06:52 25 4
gpt4 key购买 nike

我在这里找到了这个问题的答案:Store CLLocationCoordinate2D to NSUserDefaults 。代码是用 Objective C 编写的。我基本上了解该链接中的代码发生了什么。然而,我很难将语法转换为 Swift。我认为,如果其他人也能获得此翻译,也会很有帮助。

重申一下错误,它是:无法使用类型为(CLLocationCooperative2D,forKey:String!)的参数列表调用“setObject”。这是导致此问题的语法:

let mapAnnotations = NSUserDefaults.standardUserDefaults()
let newCoordinate = self.mapView.convertPoint(touchPoint, toCoordinateFromView: self.mapView)
var title: String! = ""
self.mapAnnotations.setObject(newCoordinate, forKey: title) //the error is here
self.mapAnnotations.synchronize()

最佳答案

只需将代码更改为以下内容即可

let mapAnnotations = NSUserDefaults.standardUserDefaults()
let newCoordinate = self.mapView.convertPoint(touchPoint, toCoordinateFromView: self.mapView)
let lat = NSNumber(double: newCoordinate.latitude)
let lon = NSNumber(double: newCoordinate.longitude)
let userLocation: NSDictionary = ["lat": lat, "long": lon]
self.mapAnnotations.setObject(userLocation, forKey: "userLocation") //the error is here
self.mapAnnotations.synchronize()

我所做的是:

  • 使用 Double 创建两个 NSNumber 对象,并将它们收集在 NSDictionary 中(而不是 Swift Dictionary >).
  • 将此 NSDictionary 传递给您的 NSUserDefaults,它现在应该接受它,就像 Objective-C 代码一样。

关于ios - NSUserDefaults 并使用 setobject 方法在 Swift 中存储 CLLocationCooperative2D 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32262216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com