我正在构建一个利用核心数据的应用程序,它在数据模型中有多个实体。我想做的是创建一个方法,该方法能够根据它接收到的方法的名称创建适当的 NSManagedObject 子类,这将是一个 NSString。
我的方法如下所示:
- (NSManagedObject *) addEntity:(NSString *)name {
NSManagedObjectContext *context = [self managedObjectContext];
NSError *error;
//need to add a line here that casts EntityType to of type "name" which is passed into the method.
EntityType *testEntity = [NSEntityDescription insertNewObjectForEntityForName:name inManagedObjectContext:context];
[context save:&error];
return testEntity;
}
其中“EntityType”是“name”类型,这样如果我将名称“Manager”传递给方法,我将创建一个“Manager”类型的对象。因此上面的行:
EntityType *testEntity = [NSEntityDescription insertNewObjectForEntityForName:name inManagedObjectContext:context];
会读:
Manager *testEntity = [NSEntityDescription insertNewObjectForEntityForName:name inManagedObjectContext:context];
为了根据传递给方法的类型动态创建实体,我需要做什么?请注意,我这样做是因为我的应用程序中有超过 20 个实体,并且希望只有一种方法可以用于其中任何一个。