ios - 从用户默认值中检索 GMSPlace 实例

标签 ios swift google-maps

我知道我们不能将自定义类保存到 UserDefaults。但是在我的代码中将 GMSPlace 实例保存到 userdefaults 并检索它会非常方便。

理想情况下,我想提出以下功能:

func save(selectedPlace: GMSPlace) {}
func getSelectedPlace() -> GMSPlace? {}

我想我应该将其转换为 NSData 或将其转换为字典。我选择了第二个选项,但我不知道如何从字典中检索 GMSPlace 实例。换句话说,目前,我只知道该怎么做:

func save(selectedPlace: GMSPlace) {}
func getSelectedPlace() -> [String: Any]? {}

最佳答案

您不能将 GMSPlace 保存在 userdefault 中,因为 GMSPlace 类未确认 NSEncoding 和 NSDecoding 协议(protocol)。

但是可以通过使用 GMSPlace 类的所有参数创建一个 NSDictionary 并将新创建的 NSDictionary 保存到 NSUserdefaults 来实现这一点。

然后当您访问 agian 时,然后从 NSUserdefault 获取字典并创建 GMSPlace 类对象。

如果您对实现有任何疑问,请告诉我们。

关于ios - 从用户默认值中检索 GMSPlace 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40946486/

相关文章:

swift - Swift 中的函数将 Pdf 文件附加到另一个 Pdf

iphone - MKMapView 经纬度坐标

ios - 使用谷歌登录时更改应用程序名称出现在谷歌授权页面

ios - 使用 relativeToURL 初始值设定项快速发布构建 URL

iphone - iPad 中的应用程序崩溃但 iPhone 中没有

ios - 类型 'inout UIButton' 不符合协议(protocol) 'ReactiveCompatible'

ios - JSQMessagesView 动画行高变化的问题

Android:Google Map V2 无法使用 Eclipse 按预期工作

ios - 如何在 iOS 中的 Google map 上绘制弧线?

javascript - 我必须使用 google.maps.event.addListener(marker, 'click' , function(){}) 吗?