抽象类和管理对象的转换

时间:2012-02-02 15:55:44

标签: objective-c core-data casting

我正在尝试编写一个抽象类来管理托管实体。但是,我对Objective-C并不熟悉,并想知道如何做到以下几点。

在我的抽象类控制器中,我有我的ManagedObjectContext。 在我的objectController(实现abstractController)中,我需要创建一个实体。 在抽象类中,我有以下内容:

- (NSManagedObject *) getNewObject {
    return (NSManagedObject *)[NSEntityDescription insertNewObjectForEntityForName:_objectName inManagedObjectContext:managedObjectContext];  
}

然后在我的实施中,我呼吁:

MyObject* object = (MyObject) [self getNewObject];

但是这会产生编译错误:“转换为不完整类型” (MyObject的类型为NSManagedObject)

最好的方法是什么?我应该使用NSClassFromString吗?但是,我如何定义“getNewObject”,如:

- (id) getNewObject {
    return (NSClassFromString (classname)*)[NSEntityDescription insertNewObjectForEntityForName:_objectName inManagedObjectContext:managedObjectContext];  
}

1 个答案:

答案 0 :(得分:1)

Castin完成如下

MyObject* object = (MyObject*) [self getNewObject];