通过核心数据恢复注释

时间:2011-06-21 22:11:19

标签: iphone objective-c core-data mapkit mkannotation

目前,我有一个应用程序,用户点击地图并添加带有特定字幕的注释点。但是,当手机重启电源时,所有添加的点都消失了。我有兴趣使这些注释持久化。我一直在试图弄清楚如何使用Core-Data来做这件事,但是在这里阅读了这个教程:http://www.raywenderlich.com/934/core-data-tutorial-getting-started后,我有点迷失在哪里开始。

任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:0)

如果您设置了核心数据应用程序,则只需在xcdatamodel文件中创建实体。为您可能想要存储的任何内容添加属性。

latitude - double
longitude - double
title - NSString

等。直到你拥有你想要的东西。

如果要添加注释,则应为实体创建新的核心数据对象。它看起来像这样

Location *newLocation = (Location *)[NSEntityDescription insertNewObjectForEntityForName:@"Location" inManagedObjectContext:self.managedObjectContext];
Location.latitude = ....
// and so on to store the information you want in its attributes;

如果稍后更改值,则可以在不同点设置属性。您只需要能够访问正确的对象以使用注释。您应该可以在managedObjectContext中使用NSFetchRequest来执行此操作。您可以使用NSPredicate将对象过滤为所需的对象。然后,当您准备退出应用程序时,使用

保存上下文
NSError *error = nil;
if ([managedObjectContext save:&error]) {
    // handle the error;
}

将存储您下次打开应用时添加的所有对象。然后,您将能够基于managedObjectContext中的对象创建注释。我希望这是你正在寻找的,或者至少让你知道如何处理你想做的事情。