0

我有一个简单的自定义对象(“成分”),其中包含实例变量、类方法和实例方法。这个自定义对象在我的应用程序中无情地交织在一起。我想使用 Core Data 存储这个自定义对象的实例。根据我的阅读,不鼓励在托管对象中使用实例变量和方法。

所以现在我对如何进行感到困惑。

从类似情况的示例中,似乎通常的做法是获取结果并将其放入数组中,如下所示:

NSMutableArray *array = [managedObjectContext executeFetchRequest:fetchRequest error:&error];

但我不清楚我可以用对象的 mutableArray 做什么。我可以用我的自定义对象做我目前想做的所有事情吗:修改实例变量、将对象发送到方法等?

或者我是否像目前一样使用我的“Ingredient”对象创建一个属性与我的“Ingredient”实例变量匹配的“ArchivedIngredient”托管对象 - 然后在我需要存储时将“Ingredient”转换回“ArchivedIngredient”对象?如果是这样,那将如何进行?

我在这里想念什么?

4

1 回答 1

1

根据我的阅读,不鼓励在托管对象中使用实例变量和方法。

我现在不明白你的意思,但如果你的意思是你不应该基于你的核心数据实体创建类,那你就错了。您可以使用核心数据检查器为您的实体分配自定义类,并通过选择模型上的实体并使用 Xcode 的产品菜单找到“创建 NSManagedObject 子类”来创建该类的实现的头文件和源文件。这将生成您的 NSManagedObject 子类。您可以添加实例方法和类方法,就像其他类一样。

当您修改自定义类的属性并希望保存这些更改时,您需要获取用于获取对象的托管对象上下文并调用 save 方法。这会将更改放入持久存储中。

另外,请注意,您调用“executeFetchRequest”的方法不会返回可变数组。它返回 NSArray 的不可变子类,您必须将其视为 NSArray。

于 2012-10-18T03:59:15.013 回答