将类型从id更改为子类nsmanagedobject

时间:2011-05-09 21:07:54

标签: cocoa

我需要这个操作bsc方法接收id,我喜欢使用点语法来设置对象。 目前我这样做。但也许有人知道更优雅的方式吗?

-(NSError *) updateObject:(id)object operation:(NSInteger)operation;
{
CurrentCompany *obj1 = nil;
 ...
CompanyStuff *obj2 = nil;


if ([[[(CurrentCompany *)object entity] name] isEqualToString:@"CurrentCompany"]) obj1 = (CurrentCompany *)object;
if ([[[(CompanyStuff *)object entity] name] isEqualToString:@"CompanyStuff"]) obj2 = (CompanyStuff *)object;

NSLog(@"UpdatedObject:%@",obj1);

1 个答案:

答案 0 :(得分:1)

如果这些类符合公共协议或从声明属性的公共超类继承,则可以静态地将变量键入为该协议或超类。如果这两种情况都不是这样,那么无论如何它们似乎都不应该互换。

此外,这并不是真正相关,但是从id到特定类的显式转换是没有意义的。你可以分配。