我知道我们不能将自定义类保存到 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/