我正在尝试编写一个抽象类来管理托管实体。但是,我对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];
}
答案 0 :(得分:1)
Castin完成如下
MyObject* object = (MyObject*) [self getNewObject];