我知道我们无法将自定义类保存到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协议.
但是可以通过使用GMSPlace类中的所有参数创建一个NSDictionary并将新创建的NSDictionary保存到NSUserdefaults来实现.
当你访问agian然后从NSUserdefault获取dictinary并创建GMSPlace类对象.
如果您在实施中有任何疑问,请告诉我们.