カスタムクラスをUserDefaults
に保存することはできません。しかし、私のコードでは、GMSPlaceインスタンスをuserdefaultsに保存して取得するのが非常に便利です。ユーザーのデフォルトからGMSPlaceインスタンスを取得する
理想的には、私は以下の機能を思い付くたい:
func save(selectedPlace: GMSPlace) {}
func getSelectedPlace() -> GMSPlace? {}
私はNSDataのに変換したり、辞書に変換しなければならないと仮定します。私は2番目の選択肢に行きましたが、GMSPlaceインスタンスを辞書から取り出す方法はわかりません。つまり、今のところ、私はこれを行うには唯一の方法を知っている:
func save(selectedPlace: GMSPlace) {}
func getSelectedPlace() -> [String: Any]? {}
お返事ありがとうございます。私はそれが正しい答えだと思う。私はより単純なものを願っていても、今は少なくとも –
のプロトコルを暗号化しています。私は最終的にGMSPlaceから必要なプロパティのみを使用する独自のPlaceクラスを実装することを選択しました。次に、このクラスのNSCodingを実装します。私はそれをよりエレガントに感じます。また、GMaps SDKが進化する場合や、別のマップサービスに切り替える場合に便利なコード全体をGMSPlaceで抽象化することもできます。 –