核心数据:“insertNewObjectForEntityForName”问题

时间:2010-09-16 02:08:16

标签: iphone objective-c core-data

我正在尝试使用“insertNewObjectForEntityForName”,但我的声明存在问题,我想知道是否有人对此有意见。

这是我的实施:

NSManagedObjectContext *context = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];

// Create Object
Shots *newShot = (Shots *)[NSEntityDescription insertNewObjectForEntityForName:@"Shots" inManagedObjectContext:context];

抱怨说“射击”是未宣布的,现在我的问题是:我是否需要为Shots宣布一个新类?知道它在dataModeler中显示为NSManagedObject吗?

alt text alt text

3 个答案:

答案 0 :(得分:3)

不,你不需要写自己的“镜头”课程。在这种情况下,请使用“NSManagedObject”作为数据类型。它将响应访问Shots数据字段。

NSManagedObject *newShot = [NSEntityDescription insertNewObjectForEntityForName:@"Shots" inManagedObjectContext:context];

可以编写一个Shots类,如果您需要实现特定于Shots对象的模型行为,它将使用NSManagedObject作为其基类。

答案 1 :(得分:2)

您是否已将#import "Shots.h“包含在此文件的顶部?

我不确定“未声明”是什么意思,但NSManagedObject(核心数据实体)就像任何其他对象一样;如果你想使用它,你需要导入它。

答案 2 :(得分:0)

您可能还需要在数据模块中单击您的镜头实体,然后单击file-> new,一旦您完成它将要编写的步骤,您将看到一个名为“托管对象类”的新项目当你在dataModule中创建实体时,关闭那个类。