【问题标题】:Restoring Annotations via Core-Data通过 Core-Data 恢复注解
【发布时间】:2011-06-21 22:11:19
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    如果您设置了核心数据应用程序,则只需在 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 中的对象创建注释。我希望这是您正在寻找的,或者至少可以让您了解如何处理您想做的事情。

    【讨论】:

      猜你喜欢
      • 2018-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      • 2011-05-21
      相关资源
      最近更新 更多