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

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

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

我想我应该将其转换为 NSData 或将其转换为字典。我选择了第二个选项,但我不知道如何从字典中检索 GMSPlace 实例。换句话说,就目前而言,我只知道如何做到这一点:
func save(selectedPlace: GMSPlace) {}
func getSelectedPlace() -> [String: Any]? {}

最佳答案

由于 GMSPlace 类不符合 NSEncoding 和 NSDecoding 协议(protocol),因此您无法将 GMSPlace 保存在用户默认中。

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

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

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

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

10-10 02:34