MKPolyline
私の iOS アプリケーションは、 の中にを格納する必要がありNSUserDefault
ます。私は多くの研究を行ってきましたが、今では次のことを知っています。
- NSUserDefaults は NSCoder のサブクラスです
- MKPolyline は NSCoder のサブクラスではありません
そのため、ポリラインをnsuserdefaultsに保存するのはかなり困難です。MKPolyline を NSData に変換しようとしました:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:routeLine]; // routeLine is an MKPolyline
[defaults dataForKey:@"key"];
[defaults synchronize];
ポリラインを NSData に変換しようとすると、次のエラー メッセージが表示されます。
キャッチされない例外 'NSInvalidArgumentException' によるアプリの終了、理由: '-[MKPolyline encodeWithCoder:]: 認識されないセレクターがインスタンス 0xba1fd70 に送信されました
MKPolylineViewを使用すると上記のコードを正常に実行できますが、MKPolyline をビューから戻す際に問題が発生します。SO でこの Q/Aを見つけましたが、アプリの機能が変わるため、問題は解決しません。
MKPolyline を保存するにはどうすればよいですか? サブクラス化できますか? もしそうなら、それは何を伴いますか? または、MKPolylineView でそれを行う方法はありますか? NSCoder で何か不足していますか?