【问题标题】:Getting started with Core Data开始使用核心数据
【发布时间】:2011-03-22 08:07:58
【问题描述】:

我无法理解 Core Data 在概念上和代码方面的工作原理。

我知道有一个协调器和一个上下文。我也知道有状态管理。它们如何协同工作?

我不明白如何将图像和一些字符串存储为对象。

假设我想稍后检索图像和字符串。我该怎么办?

我在哪里保存我的状态?怎么样?

我的代码是什么样的?我真的很感激这里有一个简单的代码示例,因为我真的很困惑。

【问题讨论】:

    标签: iphone core-data ios concept


    【解决方案1】:

    这些是我发现的一些最好的教程:

    至于你的问题:

    我知道有一个协调员和 一个上下文。我也知道有 状态管理。它们是如何工作的 在一起吗?

    持久存储协调器负责管理您的数据实际存储的位置,无论是 SQLlite DB 还是 XML 文件等等。协调器是抽象的,因此您不必担心后端的存储类型。

    托管对象上下文是您与持久存储协调器交互的方式。把它想象成你的便签本。您可以从托管对象上下文创建和修改托管对象。

    我不明白如何将图像和一些字符串存储为对象。 假设我想稍后检索图像和字符串。我该怎么办?

    如果您浏览了上面的一些教程,您将了解如何将对象从托管对象上下文中拉出。 NSString 将简单地存储为托管对象上的字符串属性,如下所示:

    [managedObject setValue:@"TestString" forKey:@"SomeStringProperty"];
    

    我不太确定图像,因为我以前从未在 Core Data 中存储过图像。我知道任何可以序列化的东西都可以存储为可转换的属性。 Here's a post about storing UIImages in Core Data

    我在哪里保存我的状态?怎么样?

    您只需在托管对象上下文中调用“保存”方法。像这样:

    [context save:&error]
    

    【讨论】:

    • 您可以将 NSData 对象存储在 Core Data 中,因此要保存图像,获取它的数据(可能使用 UIImagePNGRepresentation())并存储它。要检索图像,请从 Core Data 中获取 NSData 对象,然后使用 UIImage 的 +imageWithData 方法获取 UIImage。
    • 在撰写此评论时,您链接的第二个教程返回错误 400 错误请求。
    • Ray Wanderlich 的教程非常糟糕。它在第二部分跳入了一些毫无意义的 Python 脚本。 :-|
    【解决方案2】:

    通过 Apple 的Core Data tutorial

    【讨论】:

      【解决方案3】:

      Apple 提供了 tons 中的 documentationsource code 来帮助您入门。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-02
        • 2012-01-06
        • 1970-01-01
        • 2017-01-26
        • 1970-01-01
        相关资源
        最近更新 更多