2013-04-06 104 views
1

CLPlaceMark类的实例变量是只读的。从SQLite数据库填充CLPlacemark

我的应用程序使用正常程序来填充CLPlacemarkCLPlacemark的内容被添加到SQLite地点标记表中。

稍后,我的应用程序从SQLite表中提取一个或多个地点标记。如何使用提取结果来填充一个或多个CLPlacemarks,因为所有字段都是只读的?

回答

0

您需要将地标序列化为NSData对象并将其保存到数据库中。

NSData* data = [NSKeyedArchiver archivedDataWithRootObject:placemark]; 

您也可以一次归档一个NSArray的CLPlacemark对象。

然后你就可以恢复从NSData的使用NSKeyedUnarchiver地标(或地标数组):

CLPlacemark* placemark = [NSKeyedUnarchiver unarchiveObjectWithData:data]; 
+0

我可能失去了一些东西,但如何才能,如果CLPlacemark被序列数据库进行搜索? – 2013-04-07 01:01:46

+0

@StephenJoy这是不可能的,除非你保存每个地标的附加非序列化数据。 – Felix 2013-04-07 08:08:38