1
我有一类为NSManagedObjectContext
,这将插入在另一个NSManagedObjectContext
返回项目NSManagedObject
:动态类型转换在运行时
@implementation NSManagedObjectContext (GTEntity)
- (id)addEntity:(id)entity {
NSManagedObject *entityObject = [self objectWithID:[entity objectID]];
return entityObject;
}
@end
我的问题是我怎么返回对象相同的类型我有。我的意思是,如果我拨打[ctx addEntity:city]
与City *city
,其中城市是NSManagedObject
子类,我想在其他上下文中获取对象,但是类型相同,而不是NSManagedObject
类型。这种类型是通用的,应该在实体运行时确定,如objc_getClass(entity)
。我发现了一些宏,但它有一些奇怪的错误Expected "]"
(cls *)
后:
#define objc_dynamic_cast(obj, cls) \
([obj isKindOfClass:(Class)objc_getClass(#cls)] ? (cls *)obj : NULL)