2010-07-28 65 views
11

我无法理解Core Data如何在概念上和代码方面工作。核心数据入门

我得知有一个协调员和一个上下文。我也知道有国家管理。他们如何一起工作?

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

比方说,我想稍后检索图像和字符串。我该怎么办?

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

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

回答

25

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

至于你的问题:

我得到,有一个协调员和 上下文。我还得到,有 州管理。他们如何一起工作 ?

持久性存储协调器是管理数据实际存储的位置,是SQLlite数据库或XML文件或其他。协调器是抽象的,因此您不必担心后端的存储类型。

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

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

如果你看看上面的一些教程,你会看到如何从托管对象上下文中拉出对象。一的NSString会简单地存储为一个字符串属性的管理对象,就像这样:

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

我不太肯定图像作为我从来没有存储的图像核心数据之前。我知道任何可以序列化的东西都可以存储为可转换属性。 Here's a post about storing UIImages in Core Data

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

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

[context save:&error] 
+2

你可以存储在核心数据的NSData对象,所以要保存图像,得到它的数据(可能使用UIImagePNGRepresentation())和存储。要检索图像,从Core Data获取NSData对象,然后使用UIImage的+ imageWithData方法获取UIImage。 – 2010-07-28 22:40:07

+0

啊... Ray Wenderlich - 他有一个很好的网站。 – Moshe 2010-07-30 19:32:52

+0

在撰写此评论时,您链接的第二个教程将返回错误400错误请求。 – BinaryMisfit 2011-10-20 17:42:15