我需要这个操作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);
答案 0 :(得分:1)
如果这些类符合公共协议或从声明属性的公共超类继承,则可以静态地将变量键入为该协议或超类。如果这两种情况都不是这样,那么无论如何它们似乎都不应该互换。
此外,这并不是真正相关,但是从id
到特定类的显式转换是没有意义的。你可以分配。