我正在尝试使用“insertNewObjectForEntityForName”,但我的声明存在问题,我想知道是否有人对此有意见。
这是我的实施:
NSManagedObjectContext *context = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
// Create Object
Shots *newShot = (Shots *)[NSEntityDescription insertNewObjectForEntityForName:@"Shots" inManagedObjectContext:context];
抱怨说“射击”是未宣布的,现在我的问题是:我是否需要为Shots宣布一个新类?知道它在dataModeler中显示为NSManagedObject吗?
答案 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中创建实体时,关闭那个类。