我的iOS应用程序需要存储的MKPolyline
的内部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背出观的问题。 我发现在所以这个Q / A ,但它并没有解决我的问题,因为它会改变的方式我的应用程序的功能。
我怎样才能保存MKPolyline? 我可以继承它,如果是的话你会说意味着什么? 或者是有办法与MKPolylineView办呢? 我失去了与NSCoder的东西吗?