生成NSManagedObjects和Superclass的世界

时间:2015-06-20 02:44:47

标签: ios objective-c core-data

我有几个生成的NSManagedObject子类。使用这个article我创建了一个父类(名为Qualifier),我的NSManagedObject子类扩展。通过这种方式,我可以拥有一个没有实体层次结构的类层次结构。

我有一个问题,我不知道在运行时我需要创建哪个子类。我只有一个表示类名的字符串。我在Qualifier类中放置了一个创建特定子类的方法:

+ (instancetype) insertNewObjectFor:(NSString *) qualifierName intoContext:(NSManagedObjectContext *) managedObjectContext {

    NSManagedObjectModel *managedObjectModel = [[managedObjectContext persistentStoreCoordinator] managedObjectModel];
    Class qualifierClass = NSClassFromString(qualifierName);
    NSEntityDescription *entity = [[managedObjectModel entitiesByName] objectForKey:qualifierName];
    Qualifier *object = [[qualifierClass alloc] initWithEntity:entity insertIntoManagedObjectContext:managedObjectContext];

    return(object);

}

我在目标c上相当新,想要询问更有见识的堆栈交换器,这是否是创建特定实例的可接受方式?

1 个答案:

答案 0 :(得分:0)

这很好,尽管步骤多于必要的步骤。我可能会将其简化为:

Qualifier *object = [NSEntityDescription insertNewObjectForEntityForName:qualifierName
     inManagedObjectContext:context];